uWSGI在Python中请求超时

时间:2014-06-09 19:35:16

标签: python rest timeout request uwsgi

尝试在uWSGI中设置请求的超时时间,我不确定设置是否正确。似乎有多个超时选项(套接字,接口等),并且不容易明白哪个设置要配置或在何处设置它。

我正在寻找的行为是将请求的时间延长到REST应用程序的资源层。

3 个答案:

答案 0 :(得分:50)

您正在寻找 harakiri 参数 - 如果请求的时间超过指定的harakiri时间(以秒为单位),请求将被删除并且相应的工作人员将被回收。

对于独立的uwsgi(ini config):

[uwsgi]
http = 0.0.0.0:80
harakiri = 30
...

如果你在uwsgi之前有nginx代理,你也必须增加超时:

  location / {
    proxy_pass http://my_uwsgi_upstream;
    proxy_read_timeout 30s;
    proxy_send_timeout 30s;
  }

如果您希望(出于某些奇怪的原因)超过60秒的超时,您可以考虑通过uwsgi协议进行通信。配置与nginx网站非常相似:

location / {
    uwsgi_read_timeout 120s;
    uwsgi_send_timeout 120s;
    uwsgi_pass  my_upstream;
    include     uwsgi_params;
}

uwsgi:

[uwsgi]
socket = 0.0.0.0:80
protocol = uwsgi
harakiri = 120
...

答案 1 :(得分:15)

设置http-timeout对我有用。我有http = :8080,所以我假设你使用文件系统套接字,你必须使用socket-timeout

答案 2 :(得分:0)

它通过评论对我有用 #master = 真 并把这个, 懒惰的应用程序 = 真

在 uwsgi.ini 文件中