1 个带有 Gunicorn 的 Web Worker 是否总是意味着只有 1 个进程?

fin*_*oot 6 python parallel-processing concurrency web-applications gunicorn

这可能是一个相当基本的问题。我正在学习网络应用程序开发的基础知识以及在这方面的并发性和并行性。

如果我启动 Flask Web 应用程序并将 Gunicorn 设置为 1 个工作线程:

gunicorn -w 1 server:app
Run Code Online (Sandbox Code Playgroud)

这是否总是意味着只有一个进程在运行我的应用程序?或者这不是确定的,有些工作人员可能不仅使用线程、greenlet 等,而且还会为我的应用程序生成一个完整的附加进程?

对于后者,这是否也适用于syncgevent工人,或者这些总是一个过程?

fin*_*oot 5

这个问题在 GitHub 上的 Gunicorn 问题跟踪器的一篇文章中有答案:

是的。但是,您将看到两个进程正在运行。一种是 Gunicorn 主进程,它控制工作进程。将工作进程数设置为 1 时,您将只有一个工作进程。

来源:https ://github.com/benoitc/gunicorn/issues/2082#issuecomment-522343242