Django 기반 애플리케이션 용 통합 서버를 구축했습니다. 몇 가지 기능은 아직 실험 중이며 지나치게 긴 요청이 있습니다.gunicorn + nginx로 장기 실행 요청
성능이 좋지 않아도 괜찮습니다. 그러나 지금은 통합 할 수 있어야합니다. 긴 요청으로 이어지는 기능을 사용할 때마다 응용 프로그램이 (예상대로) 정지 한 다음 1 분 30 초 후 '502 - 잘못된 게이트웨이'를 반환합니다. 나머지 애플 리케이션은 잘 작동합니다.
은 내가 gunicorn 로그를 확인하고,이 발생할 때마다 나는 그러나,이 난 그냥 확인 10 분으로 설정 한 실제 작업자 타임 아웃, 오래 전에 발생2012-01-20 17:30:13 [23128] [DEBUG] GET /results/
2012-01-20 17:30:43 [23125] [ERROR] WORKER TIMEOUT (pid:23128)
Traceback (most recent call last):
File "/home/demo/python_envs/frontend/lib/python2.6/site-packages/gunicorn/app/base.py", line 111, in run
os.setpgrp()
OSError: [Errno 1] Operation not permitted
같은 라인을 얻을. 여기 gunicorn을 실행하는 신생 스크립트의 일부입니다.
description "..."
start on runlevel [2345]
stop on runlevel [!2345]
#Send KILL after 5 seconds
kill timeout 5
respawn
env VENV="/path/to/a/virtual/env/"
#how to know the pid
pid file $VENV/run/guniconr-8080.pid
script
exec sudo -u demo $VENV/bin/gunicorn_django --preload --daemon -w 4 -t 600 --log-level debug --log-file $VENV/run/gunicorn-8080.log -p $VENV/run/gunicorn-8080.pid -b localhost:8080 /path/to/settings.py
end script
나는 gunicorn 버전 0.13.4를 실행 중입니다. 어떤 도움이라도 대단히 감사하겠습니다.
이 질문은 cross-post from ServerFault입니다.
제목에서 알 수 있듯이 nginx를 사용하고 있습니다. 테스트를 위해 타임 아웃을 10 분으로 설정했지만, 타임 아웃을 더 일찍 종료합니다 (그러나 90 초보다 길어집니다). –
무시해도 될까요, 아마도 90 초가 넘지 않았을 것입니다 ... 그 번호를 어디서 얻었는지에 대한 참고 자료가 있습니까? –
... 또한 일반적인 경우 장기 실행 요청을 처리하는 방법을 알고 있습니다. 이것은 성능이 떨어지는 통합 서버에 더 나은 하드웨어로 배포 할 수 있어야하는 개발 중 기능이며, 개발이 끝난 후에도 요청은 오래 가지 못합니다. –