webentwicklung-frage-antwort-db.com.de

Zeitlimit für uWSGI-Anforderung in Python

Beim Versuch, das Zeitlimit für Anforderungen in uWSGI festzulegen, bin ich mir nicht sicher, ob die Einstellung korrekt ist. Anscheinend gibt es mehrere Timeout-Optionen (Socket, Schnittstelle usw.), und es ist nicht ohne weiteres ersichtlich, welche Einstellung konfiguriert oder wo eingestellt werden muss.

Das Verhalten, nach dem ich suche, besteht darin, die Zeit zu verlängern, die eine Anforderung an die Ressourcenschicht einer REST Anwendung dauern kann.

33

Sie suchen wahrscheinlich nach dem Parameter harakiri - Wenn die Anforderung länger dauert als die angegebene harakiri-Zeit (in Sekunden), wird die Anforderung gelöscht und der entsprechende Mitarbeiter recycelt.

Für eigenständige uwsgi (ini config):

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

Wenn Sie vor uwsgi einen Nginx-Proxy haben, müssen Sie auch das Timeout erhöhen:

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

Wenn Sie (aus irgendeinem Grund) eine Zeitüberschreitung von mehr als 60 Sekunden wünschen, sollten Sie die Kommunikation über das Protokoll uwsgi in Betracht ziehen. Die Konfiguration ist der nginx-Site ziemlich ähnlich:

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

Einstellung http-timeout hat für mich gearbeitet. Ich habe http = :8080, also ich nehme an, wenn Sie Dateisystem-Socket verwenden, müssen Sie socket-timeout.

16
iurii