当在Python中击中REST资源(my_resource
)时,uWSGI服务器在其日志中抛出以下错误:
SIGPIPE: writing to a closed pipe/socket/fd (probably the client disconnected) on request my_resource (ip <my_ip>) !!!
uwsgi_response_write_body_do(): Broken pipe [core/writer.c line 164]
IOError: write error
似乎与超时有关(客户端在请求完成处理之前断开连接)。
这是什么类型的超时,如何修复?
这取决于你的前端服务器。例如,nginx有uwsgi_read_timeout参数。(一般设置为60秒)。uWSGI http路由器的——http-timeout默认值为60秒,以此类推。当你在谈论一个rest api,我很怀疑它需要超过60秒来生成一个响应,你确定你没有一些错误的响应头触发连接关闭的前端web服务器?
如果您正在使用uwsgi
nginx插件,请考虑使用
uwsgi_connect_timeout 180;
uwsgi_read_timeout 180;
uwsgi_send_timeout 180;