我正在运行一个 API,目前,我正在使用subprocess.Popen
. 由于被调用的模块是纯 python,我的想法是使用multiprocessing.Process
or运行它Pull
。请求是这样处理的:
- 请求到达
Connexion
端点 - 一些预处理完成
- 函数用 Popen 打开
- 请求返回 200 而无需等待 3. 完成
更换时:
Popen(...)
和
p = Process(target=...)
p.start()
这发生在使用uwsgi 的多处理中:
- 请求到达
Connexion
端点 - 一些预处理完成
- 该函数使用 Process 打开
- 该请求立即返回 200,但对同一端点的第二个请求将需要前 3 个完成。
如果我在https://github.com/tiangolo/uwsgi-nginx-flask-docker上运行它:
...
- 请求等到 3 完成,然后返回 200
如果我使用python -m ...
.
我的 uwsgi.ini 看起来像这样
[uwsgi]
module = myapp
callable = app
lazy-apps = true
stats-http = true
http = 127.0.0.1:8080