2011-07-22 8 views
0

かなり頻繁にクラッシュする傾向があるDjangoアプリケーションを実行しているGunicornサーバーがあります。残念なことに、それがクラッシュすると、すべてのGunicornワーカーが同時にダウンして、DjangoとDjango-sentryのログをバイパスします。すべてのワーカーは「Internal Server Error」を返しますが、アービタはクラッシュしないので、supervisordはクラッシュとして登録せず、プロセスを再起動しません。Gunicorn内部サーバーのエラー

私の質問は、Gunicornワーカーのクラッシュに遭遇し、電子メールを送信するか、ログ記録を行う方法がありますか?第二に、supervisordにGunicornサーバを再起動させる方法がありますか?

ありがとうございます。

+0

ここにログを貼り付けてください。 Gunicornログとスーパーバイザー/ガンコーンログすべてがデフォルトであれば、スーパーマーケットの形式は/ tmp – mrbox

+0

である必要があります。残念ながら、私は会社の方針のせいでできませんが、/ tmp/supervisordにログ記録文がありますが、gunicorn workerがクラッシュしたサーバー全体がクラッシュすることはありません。 –

答えて

1

zc.buildoutの使用を強くお勧めします。それが失敗した場合は20秒ごとに、再起動プロセスHTTPリクエストを行います

[supervisor] 
recipe = collective.recipe.supervisor 
plugins = 
    superlance 
... 
programs = 
    10 zeo ${zeo:location}/bin/runzeo ${zeo:location} 
    20 instance1 ${instance1:location}/bin/runzope ${instance1:location} true 
... 
eventlisteners = 
    Memmon TICK_60 ${buildout:bin-directory}/memmon [-p instance1=200MB] 
    HttpOk TICK_60 ${buildout:bin-directory}/httpok [-p instance1 -t 20 http://localhost:8080/] 

:ここで増築してsupervisordのためのプラグインSuperlanceを使用した例があります。

http://pypi.python.org/pypi/collective.recipe.supervisor/0.16

+1

まだzc.buildoutを使用していない場合は、それを使用してスーパーランスを実行する必要はありません。詳細についてはピピのページをご覧ください。 http://pypi.python.org/pypi/superlance –

+0

ありがとうございました。ありがとう! –

関連する問題