Tiempo de espera de solicitud uWSGI en Python

Intentando establecer el tiempo de espera para las solicitudes en uWSGI, no estoy seguro de la configuración correcta. Parece que hay múltiples opciones de tiempo de espera (socket, interfaz, etc.) y no es evidente qué configuración configurar o dónde establecerla.

El comportamiento que estoy buscando es extender el tiempo que puede tomar una solicitud a la capa de recursos de una aplicación REST.

Es probable que esté buscando el parámetro harakiri : si la solicitud lleva más tiempo que el tiempo de harakiri especificado (en segundos), la solicitud se eliminará y el trabajador correspondiente se reciclará.

Para uwsgi autónomo (configuración ini):

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

Si tiene un proxy nginx antes de uwsgi, también debe boost el tiempo de espera:

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

Si desea (por alguna extraña razón) un tiempo de espera superior a 60, puede considerar la comunicación a través del protocolo uwsgi . La configuración es bastante similar al sitio 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 ... 

Configuración de http-timeout funcionó para mí. Tengo http = :8080 , así que supongo que si usa un socket de sistema de archivos, tiene que usar socket-timeout .