HerokuでGunicornを使用してDjangoアプリを実行しています。 Herokuログファイルのこのエラーはどういう意味ですか?
質問
HerokuでDjangoアプリでGunicornを使用しようとしています。ここで指示に従いました: http://devcenter.heroku.com/articles/django#using_a_different_wsgi_server. 。ログがそれを示しているため、Gunicornが走っているように見えます。ただし、ログファイルでわからないエラーメッセージが表示されないのは好きではありません。ログを確認しているときに、「エラーR12(終了タイムアウト) - >プロセスがSIGTEREから10秒以内に終了できなかった行が表示されました。 「そして、「シグキルでプロセスを停止する」。私のアプリは予想されるURLで正常に実行されているように見えるので、これは緊急事態ではありませんが、何が起こっているのか興味があります。ありがとう。
2012-01-10T20:56:36+00:00 heroku[web.1]: State changed from up to bouncing
2012-01-10T20:56:36+00:00 heroku[web.1]: State changed from bouncing to created
2012-01-10T20:56:36+00:00 heroku[web.1]: State changed from created to starting
2012-01-10T20:56:39+00:00 heroku[web.1]: Stopping process with SIGTERM
2012-01-10T20:56:39+00:00 heroku[web.1]: Starting process with command `python blossom/manage.py run_gunicorn -b "0.0.0.0:27470" -w 3`
2012-01-10T20:56:40+00:00 app[web.1]: Validating models...
2012-01-10T20:56:40+00:00 app[web.1]: Django version 1.3.1, using settings 'blossom.settings'
2012-01-10T20:56:40+00:00 app[web.1]:
2012-01-10T20:56:40+00:00 app[web.1]: Server is running
2012-01-10T20:56:40+00:00 app[web.1]: 0 errors found
2012-01-10T20:56:40+00:00 app[web.1]: Quit the server with CONTROL-C.
2012-01-10T20:56:40+00:00 app[web.1]: 2012-01-10 15:56:40 [3] [INFO] Starting gunicorn 0.13.4
2012-01-10T20:56:40+00:00 app[web.1]: 2012-01-10 15:56:40 [3] [INFO] Listening at: http://0.0.0.0:27470 (3)
2012-01-10T20:56:40+00:00 app[web.1]: 2012-01-10 15:56:40 [3] [INFO] Using worker: sync
2012-01-10T20:56:40+00:00 app[web.1]: 2012-01-10 15:56:40 [6] [INFO] Booting worker with pid: 6
2012-01-10T20:56:40+00:00 app[web.1]: 2012-01-10 15:56:40 [7] [INFO] Booting worker with pid: 7
2012-01-10T20:56:40+00:00 app[web.1]: 2012-01-10 15:56:40 [8] [INFO] Booting worker with pid: 8
2012-01-10T20:56:41+00:00 heroku[web.1]: State changed from starting to up
2012-01-10T20:56:48+00:00 heroku[web.1]: Error R12 (Exit timeout) -> Process failed to exit within 10 seconds of SIGTERM
2012-01-10T20:56:48+00:00 heroku[web.1]: Stopping process with SIGKILL
2012-01-10T20:56:50+00:00 heroku[web.1]: Process exited
解決
基本的に、それがブリキに言っていること。 Heroku Stackでは、プロセスは常にSigtermで終了します。これにより、プロセスは優雅にシャットダウンすることを示し、10秒を与えます。
これが10秒以内に終了していない場合は、R12エラーとSigkillを取得します。これは本質的にキルです。
さて、ここでこれが起こっている理由は、ログが十分に戻っていないため、完全に明確ではありませんが、20:56:39でSigtermが起こっているのを見ることができます
他のヒント
あなたの問題を確実に示すのに十分なログがありません(エラーR12は多くのことを意味する場合があります)。そして、記録のために、私はグニコーンを走っていません。とはいえ、私はこれに同様の問題がありました。
Cedarスタックは、プロジェクトの他の場所にそのアプリのモジュールがない場合、settings.pyのインストールされた_APPSセクションでアプリに言及することを好まないことがわかりました。
私は通常、views.pyでコーディングを開始する前にアプリをinstalled_appsにコードします。ローカルのdjangoサーバーは文句を言っていないので、それを行うことに慣れました。残念ながら、それはその杉のスタックを壊します。
プロジェクトの他のどこにもモジュールがないアプリにコメントし、新しいバージョンをプッシュアップしたとき、すぐに再び動作し始めました。