尝试在uWSGI中设置请求超时时间,但不确定正确的设置方式。似乎有多个超时选项(套接字、接口等),并不清楚应该配置哪个设置或在何处设置。
我要实现的行为是延长针对REST应用程序资源层的请求所需的时间。
我要实现的行为是延长针对REST应用程序资源层的请求所需的时间。
你可能正在寻找harakiri参数 - 如果请求超过指定的 harakiri 时间(以秒为单位),请求将被丢弃并相应的工作进程将被重新启动。
对于独立的uwsgi(ini配置):
[uwsgi]
http = 0.0.0.0:80
harakiri = 30
...
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
...
设置http-timeout
对我有用。我有http = :8080
,所以我认为如果您使用文件系统套接字,您必须使用socket-timeout
。
http-timeout
参数来延长超时时间。我不需要--harakiri
。(正如@Tombart上面所说,我还需要在nginx配置中设置proxy_read_timeout
和proxy_send_timeout
) - nttayloruwsgi
时,问题也出在 --http-timeout
参数上。 - white_gecko我通过注释掉
#master = true
并添加以下内容,
lazy-apps = true
到uwsgi.ini文件中,使其对我起作用。
NameError: name 'uwsgi' is not defined
。 - Harry Morenouwsgi_read_timeout
和uwsgi_send_timeout
。现在它对我起作用了! - Rufat