Подтвердить что ты не робот

Таймаут запроса uWSGI в Python

Попытка установить тайм-аут для запросов в uWSGI, я не уверен в правильной настройке. Кажется, что есть несколько вариантов тайм-аута (сокет, интерфейс и т.д.), И неясно, какой настройке следует настроить или где его установить.

Поведение, которое я ищу, - это продлить время, которое может потребовать запрос к ресурсному слою приложения REST.

4b9b3361

Ответ 1

Вы можете найти параметр harakiri - если запрос занимает больше времени, чем указанное время харакири (в секундах), запрос будет удален, а соответствующий работник будет повторно использован.

Для автономного uwsgi (ini config):

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

Если у вас есть прокси nginx перед uwsgi, вам также нужно увеличить таймаут:

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

Ответ 2

Настройка http-timeout работала для меня. У меня есть http = :8080, поэтому я предполагаю, что если вы используете сокет файловой системы, вы должны использовать socket-timeout.