私は、Djangoを搭載したアプリケーション用の統合サーバーをまとめました。機能のいくつかは実験的なものであり、過度に長い要求が発生します。gunicorn + nginxで長時間実行されているリクエスト
私はパフォーマンスが悪いので大丈夫ですが、今のところ統合する必要があります。長い要求につながる機能を使用するたびに、アプリケーションは(期待通りに)ハングアップし、おそらく1分半後に '502 - Bad Gateway'が返されます。アプリケーションの残りの部分は正常に動作します。
私は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秒を超えていないかもしれません。その番号を入手した場所の参照はありますか? –
...また、私は一般的なケースで長時間実行されるリクエストに対処する方法を理解しています。これは、パフォーマンスの低下を伴い、より良いハードウェア上で統合サーバーに展開できるようにするために必要な開発中の機能であり、開発がさらに進んだら、要求は長引かずに実行されます。 –