我们的应用程序使用 FastAPI 版本
0.111.0
。像下面这样启动 uvicron
服务器,这可以在我们的开发/测试环境中在 Windows 机器上运行。当我们在 Azure Kubernets 集群中部署此代码时,子进程在启动过程中死亡
uvicorn.run(
"main:app",
host='0.0.0.0',
port=8080,
log_level="DEBUG",
workers=3
)
错误信息:
INFO: Uvicorn running on http://0.0.0.0:8080 (Press CTRL+C to quit)
INFO: Started parent process [1]
INFO: Waiting for child process [12]
INFO: Child process [12] died
INFO: Waiting for child process [13]
INFO: Child process [13] died
INFO: Waiting for child process [14]
INFO: Child process [14] died
INFO: Waiting for child process [13]
INFO: Child process [13] died
INFO: Waiting for child process [15]
如果我们删除
workers
调用的 uvicron.run
参数,应用程序将在 AKS 中启动。我想了解,为什么子进程会因 workers
参数而终止。
谢谢
这里也一样。 回滚到旧版本的 fastapi。
pip install fastapi[all]==0.110.3
编辑:不起作用。
编辑2:将工人从4人改为2人,工作了
编辑3:又发生了。 将工人从 2 人改为 1 人,工作了
看来,这是一个错误: https://github.com/encode/uvicorn/discussions/2372
将在 v0.30.2 修复: https://github.com/encode/uvicorn/pull/2380
提供您的 Dockerfile。