擅长:python、mysql、java
<p>我也遇到了类似的问题,我从gunicorn worker那里得到了超时错误。我正在使用sync worker并且有<code>timeout</code>和{<cd2>}的默认设置。
在我的用例中,我的http请求需要很长时间才能完成,因此sync worker超时了。我使用<code>curl</code>作为发送http-1.1请求的http客户端。我把超时时间增加到了一个疯狂的高值<code>3600</code>,这是1小时,这是有效的。不过,在服务器错误日志中,我看到了与您相同的错误。这是我关于这个错误的假设。
因为默认情况下,所有http1.1请求都是持久的,所以服务器会尝试重用连接,方法是将连接放回队列中,但不会超过<code>keepalive</code>超时。所以当<code>keepalive</code>超时发生时,它会注销套接字,这样就不能重用它,并关闭它。现在,由于我的超时值非常高,服务器多次尝试注销一个已经注销的套接字,但是keepalive仍然默认为5秒,所以错误就出来了。因此,我增加了“keepalive<code>value as well to</code>3600````。到目前为止还有效。在</p>
<pre><code># http://gunicorn-docs.readthedocs.org/en/latest/settings.html
timeout = 3600 # one hour timeout for long running jobs
keepalive = 3600
</code></pre>