uWSGI request timeout in Python

Trying to set the timeout for requests in uWSGI, I’m not sure of the correct setting. There seem to be multiple timeout options (socket, interface, etc.) and it’s not readily evident which setting to configure or where to set it.

The behavior I’m looking for is to extend the time a request to the resource layer of a REST application can take.

Answers:

Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.

Method 1

You’re propably looking for the harakiri parameter – if request takes longer than specified harakiri time (in seconds), the request will be dropped and the corresponding worker recycled.

For standalone uwsgi (ini config):

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

If you have nginx proxy before uwsgi you have to increase timeout as well:

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

If you want (for some strange reason) higher timeout than 60s, you might consider communication over uwsgi protocol. Configuration is quite similar nginx site:

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
...

Method 2

Setting http-timeout worked for me. I have http = :8080, so I assume if you use file system socket, you have to use socket-timeout.

Method 3

it worked for me by comment
#master = true
and put this,
lazy-apps = true

in uwsgi.ini file


All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

0 0 votes
Article Rating
Subscribe
Notify of
guest

0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x