【发布时间】:2021-11-23 23:43:28
【问题描述】:
我正在使用谷歌标准应用引擎模型将示例快速 api 应用部署到云端。该应用程序以这种方式与 gunicorn 一起提供:
gunicorn main:app --workers 4 --worker-class uvicorn.workers.UvicornWorker --bind 0.0.0.0:80
此命令生成我的应用程序的 4 个工作进程。
我读到过,在快速 API 中,您可以创建同步或异步端点。如果端点是异步的,则所有请求都在带有事件循环的单个线程上运行。如果端点是同步的,它会在另一个线程上运行该函数以防止它阻塞服务器。
我有同步阻塞端点,所以 fastapi 应该在线程上运行它们,但我也有 gunicorn spawning worker 进程。
鉴于 python 一次只执行一个线程,而且标准应用引擎在多处理方面的 CPU 方面也受到限制,我对云上 fastapi 应用程序的最佳配置感到困惑。
我应该让 gunicorn 还是 fastapi 处理并发?
【问题讨论】:
-
嗨,OP,如果答案对您有帮助,请告诉我们。如果没有,请留下反馈,以便我们改进。
标签: python google-app-engine google-cloud-platform python-multithreading fastapi