Ich habe eine Django-Anwendung in Gunicorn hinter Nginx ausgeführt. Alles funktioniert gut, für eine seltsame Sache: Ich habe eine "Download" -Ansicht und eine RESTful JSON API. Beim Aufruf der Download-Ansicht verwende ich urllib2, um auf die json-API zuzugreifen, um Informationen zu erhalten. Und genau, wenn ich versuche, http http erhalten Anfrage an die JSON API, die Zeitüberschreitung der Anfrage mit einem Fehler HTTP-Fehler 504: Gateway-Timeout.Gunicorn Arbeiter Timeout
Wenn ich den Code mit ./manage.py Runserver laufen alles funktioniert gut. Die HTTP-Get-Anfrage an die JSON-API dauert ebenfalls nur wenige Millisekunden, so dass keine Gefahr eines Timeouts besteht.
Hier ist die Situation in Pseudo-Code:
myproject/views.py: (zugänglich: http://myproject.com/download)
1 def download(request, *args, **kwargs):
2 import urllib2
3 opener = urllib2.build_opener()
4 opener.open('http://myproject.com/api/get_project_stats')
Der opener.open()
Aufruf in Zeile vier Läufen in einen Timeout, wenn in Gunicorn läuft , wenn mit ./manage.py runserver
läuft everytihng funktioniert gut (und der API-Aufruf dauert nur ein paar Millisekunden.
Hat jemand das gleiche Problem? Und mehr wichtig: Wie hast du es gelöst?
Haben Sie versucht, mit den [Gunicorn Timeout-Einstellungen] zu spielen (http: // docs.gunicorn.org/en/latest/configure.html#timeout) –