启动时在Docker[CRITICAL]WORKER中运行Gunicorn Flask应用程序超时

启动时在Docker[CRITICAL]WORKER中运行Gunicorn Flask应用程序超时,docker,flask,gunicorn,Docker,Flask,Gunicorn,我想用Docker中的gunicorn运行Flask web服务应用程序。启动时,应用程序加载一个大型机器学习模型 然而,当我在Docker中运行gunicorn时,我收到了以下超时,它只是不断地繁殖工人 [2019-12-12 21:52:42 +0000] [1] [CRITICAL] WORKER TIMEOUT (pid:1198) [2019-12-12 21:52:42 +0000] [1] [CRITICAL] WORKER TIMEOUT (pid:1204) [2019-12

我想用Docker中的gunicorn运行Flask web服务应用程序。启动时,应用程序加载一个大型机器学习模型

然而,当我在Docker中运行gunicorn时,我收到了以下超时,它只是不断地繁殖工人

[2019-12-12 21:52:42 +0000] [1] [CRITICAL] WORKER TIMEOUT (pid:1198) 
[2019-12-12 21:52:42 +0000] [1] [CRITICAL] WORKER TIMEOUT (pid:1204)
[2019-12-12 21:52:42 +0000] [1] [CRITICAL] WORKER TIMEOUT (pid:1210)
[2019-12-12 21:52:42 +0000] [1] [CRITICAL] WORKER TIMEOUT (pid:1211)
[2019-12-12 21:52:42 +0000] [1] [CRITICAL] WORKER TIMEOUT (pid:1222)
[2019-12-12 21:52:42 +0000] [1] [CRITICAL] WORKER TIMEOUT (pid:1223)
[2019-12-12 21:52:42 +0000] [1264] [INFO] Booting worker with pid: 1264
[2019-12-12 21:52:42 +0000] [1265] [INFO] Booting worker with pid: 1265
[2019-12-12 21:52:42 +0000] [1276] [INFO] Booting worker with pid: 1276
[2019-12-12 21:52:42 +0000] [1277] [INFO] Booting worker with pid: 1277
[2019-12-12 21:52:42 +0000] [1278] [INFO] Booting worker with pid: 1278
[2019-12-12 21:52:42 +0000] [1289] [INFO] Booting worker with pid: 1289
在Docker中将其作为flask应用程序运行,或者在命令行中使用(或不使用)gunicorn运行flask应用程序都可以。如果我删除机器学习模型,它也可以与gunicorn一起使用

例如:

$python app.py

$gunicorn -b 0.0.0.0:8080 --workers=2 --threads=4 app:app

$gunicorn app:app
这是我与Flask开发服务器的Dockerfile。很好

ADD . /app
WORKDIR /app
RUN pip install -r requirements.txt
CMD python app.py
如果我按如下方式运行gunicorn,它只会不断繁殖工人:

CMD gunicorn -b 0.0.0.0:8080 --workers=2 --threads=4 app:app
or
CMD ["gunicorn", "app:app"]
gunicorn有一个--timeout=30参数。默认值为30秒,我将其增加到300秒。这似乎没有影响

注意:我为Starlette库重写了应用程序,收到了相同的结果

感谢您的指导

谢谢,
Jay

我需要添加gunicorn——超时,如下所示:

CMD gunicorn --timeout 1000 --workers 1 --threads 4 --log-level debug --bind 0.0.0.0:8000 app:app
我在部署谷歌云平台时也遇到了问题。日志只显示了一条终止消息。增加计算实例中的内存解决了这个问题。

试试这个
CMD[“gunicorn”、“--timeout”、“1000”、“--workers=1”、“-b”、“0.0.0.0:8000”、“--log level”、“debug”、“manage”]