Czas pracy pracownika Gunicorn
Mam aplikację Django działającą w Gunicorn za Nginxem. Wszystko działa dobrze, wyjdź na jedną dziwną rzecz: mam widok „download” i RESTful json API. Po wywołaniu widoku pobierania używam urllib2, aby uzyskać dostęp do interfejsu API json, aby uzyskać informacje. I dokładnie, gdy próbuję wykonać to żądanie HTTP do api json, żądanie przekroczy limit czasu z błędem HTTP 504: Limit czasu bramy.
Kiedy uruchamiam kod za pomocą ./manage.py runserver, wszystko działa dobrze. Żądanie http do api json zajmuje tylko kilka milisekund, więc nie ma niebezpieczeństwa przekroczenia limitu czasu.
Oto sytuacja w kodzie pseudo:
myproject / views.py: (dostępne jako: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')
Theopener.open()
Wywołanie w linii czwartej powoduje przekroczenie limitu czasu podczas biegu w Gunicorn, gdy biegniesz z./manage.py runserver
everytihng działa dobrze (a wywołanie api zajmuje tylko kilka milisekund).
Czy ktoś miał ten sam problem? I co ważniejsze: jak to rozwiązałeś?