Bezdepbonusu7Программирование: статьи и ответы

Вопрос

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

Автор вопроса: Juan Carlos CotoОтветов: 3

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

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

pythonuwsgi

Ответы

Ответ 1 · рейтинг 77 · Tombart

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

Для автономного 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]
socket = 0.0.0.0:80
protocol = uwsgi
harakiri = 120
...

Ответ 2 · рейтинг 22 · iurii

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

Ответ 3 · Shahram

у меня сработало по комментарию #master=true и поставил это,lazy-apps=true

в файле uwsgi.ini

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы