Python中uWSGI请求超时
我在尝试为uWSGI中的请求设置超时时间,但不太确定该怎么设置。这里似乎有很多超时选项(比如socket、接口等等),而且不太清楚应该配置哪个设置,或者在哪里设置。
我想要的效果是延长REST应用程序中请求资源层所需的时间。
3 个回答
-2
对我来说,解决办法是把这行代码注释掉:#master = true
,然后加上这一行:lazy-apps = true
。
这些内容需要放在uwsgi.ini这个文件里。
24
设置 http-timeout
对我来说有效。我使用的是 http = :8080
,所以我猜如果你用的是文件系统的套接字,那你就得用 socket-timeout
。
92
你可能在找harakiri这个参数——如果请求的处理时间超过了设定的harakiri时间(以秒为单位),那么这个请求就会被丢弃,同时对应的工作进程也会被重启。
对于独立的uwsgi(ini配置):
[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
...