Ho un'applicazione Django in esecuzione in Gunicorn dietro Nginx. Tutto funziona bene, per una cosa strana: ho una vista "download" e una API JSON RESTful. Quando chiami la vista download, uso urllib2 per accedere all'API json per ottenere informazioni. Ed esattamente quando provo a fare questa http ottenere la richiesta a json api, la richiesta scade con un errore Errore HTTP 504: Timeout gateway.Timeout operaio Gunicorn
Quando eseguo il codice con ./manage.py runserver, tutto funziona correttamente. La richiesta di http per la json api richiede anche solo pochi millisecondi, quindi non c'è pericolo di incorrere in un timeout.
qui la situazione in pseudo codice:
myproject/views.py: (accessibili come: 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')
Il opener.open()
chiamata nella linea di quattro piste in un timeout durante l'esecuzione in Gunicorn , quando si esegue con ./manage.py runserver
everytihng funziona bene (e la chiamata api richiede solo pochi millisecondi.
Qualcuno ha avuto lo stesso problema? importante: come l'hai risolto?
Hai provato a giocare con le impostazioni di timeout [Gunicorn] (http: // docs.gunicorn.org/en/latest/configure.html#timeout) –