Gunicorn Worker Timeout
Ich habe eine Django-Anwendung, die in Gunicorn hinter Nginx läuft. Alles funktioniert einwandfrei, abgesehen von einer seltsamen Sache: Ich habe eine "Download" -Ansicht und eine RESTful-Json-API. Beim Aufrufen der Download-Ansicht verwende ich urllib2, um auf die json-API zuzugreifen und Informationen abzurufen. Und genau, wenn ich versuche, diese HTTP-Get-Anforderung an die JSON-API zu senden, läuft die Anforderung mit einem Fehler ab. HTTP-Fehler 504: Gateway-Timeout.
Wenn ich den Code mit ./manage.py runserver ausführe, funktioniert alles einwandfrei. Die http get-Anfrage an die json-API dauert ebenfalls nur wenige Millisekunden, sodass keine Gefahr besteht, dass eine Zeitüberschreitung auftritt.
Hier die Situation im Pseudocode:
myproject / views.py: (erreichbar als: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')
Dasopener.open()
call in line four läuft in Gunicorn mit einem Timeout./manage.py runserver
Alles funktioniert einwandfrei (und der API-Aufruf dauert nur wenige Millisekunden.
Hat jemand das gleiche Problem gehabt? Und was noch wichtiger ist: Wie haben Sie es gelöst?