我已经设置了gunicorn与3个工人,30个工人连接和使用eventlet工人类。它被设置在Nginx后面。每请求几次,我就会在日志里看到这个。
[ERROR] gunicorn.error: WORKER TIMEOUT (pid:23475)
None
[INFO] gunicorn.error: Booting worker with pid: 23514
为什么会这样?我怎样才能知道哪里出了问题呢?
我已经设置了gunicorn与3个工人,30个工人连接和使用eventlet工人类。它被设置在Nginx后面。每请求几次,我就会在日志里看到这个。
[ERROR] gunicorn.error: WORKER TIMEOUT (pid:23475)
None
[INFO] gunicorn.error: Booting worker with pid: 23514
为什么会这样?我怎样才能知道哪里出了问题呢?
当前回答
对我来说,这是因为我忘记在数据库服务器上为我的Django设置防火墙规则。
其他回答
超时是这个问题的一个关键参数。
然而,它不适合我。
当我设置workers=1时,我发现没有gunicorn超时错误。
当我看我的代码,我发现一些套接字连接(套接字。在服务器init中发送& socket.recv)。
套接字。Recv将阻塞我的代码,这就是为什么它总是超时时,工人>1
希望能给那些对我有意见的人一些建议
对我来说,这是因为我忘记在数据库服务器上为我的Django设置防火墙规则。
对我来说,解决方案是在我的入口点上添加——timeout 90,但它不起作用,因为我定义了两个入口点,一个在app.yaml中,另一个在Dockerfile中。我删除了未使用的入口点,并在另一个入口点添加了——timeout 90。
弗兰克的回答给我指明了正确的方向。我有一个数字海洋液滴访问管理数字海洋Postgresql数据库。我所需要做的就是将我的液滴添加到数据库的“可信来源”。
(在DO控制台点击数据库,然后点击设置。编辑Trusted Sources,选择液滴名称(在可编辑区域点击,会提示)。
会是这样吗? http://docs.gunicorn.org/en/latest/settings.html#timeout
其他的可能是你的回复时间太长或者被困在等待中。