Bootstrap

【BUG】Gunicorn [CRITICAL] WORKER TIMEOUT (pid:41518)

【BUG】Gunicorn [CRITICAL] WORKER TIMEOUT (pid:41518)

环境

python 3.10
Flask                 2.3.3
gunicorn              22.0.0
gevent                24.2.1

问题详情

在使用Gunicorn 启动一个Flask服务后,访问接口响应错误,查看日志发现了该错误。错误完整输出如下:

[CRITICAL] WORKER TIMEOUT (pid:41518)
[INFO] Worker exiting (pid: 41518)
[ERROR] Worker (pid:41518) was sent SIGKILL! Perhaps out of memory?

错误原因:接口返回时间超时。默认情况下,Gunicorn 超时时间为30秒。如果接口30秒内没有返回结果,Gunicorn 会弹出超时错误,并且会杀死flask服务重启。

具体上,我的接口大约需要2分钟才将结果返回,因此我的超时时间应该设置为200秒比较合适。

解决方法

解决方法是在启动命令中加大超时参数--timeout

样例,设置超时时间为200秒

# 单位是秒
gunicorn -w 1 -b 127.0.0.1:5021 --timeout 200 my_app:app

参考

gunicorn 超时报错:[1] [CRITICAL] WORKER TIMEOUT 解决_gunicorn timeout-CSDN博客

Settings — Gunicorn 22.0.0 documentation

;