2012-01-10 21 views
1

我想用heroku上的我的django應用程序使用gunicorn。我按照這裏的說明:http://devcenter.heroku.com/articles/django#using_a_different_wsgi_server。看起來gunicorn正在運行,因爲日誌顯示它。但是,我不喜歡在日誌文件中看到我不理解的錯誤消息,並且在查看日誌時,我看到了一行讀取「錯誤R12(退出超時) - >進程無法在SIGTERM的10秒內退出「然後」用SIGKILL停止進程「。我的應用似乎在預期的URL上運行良好,所以這不是緊急情況,但我只是好奇到底發生了什麼。謝謝。我在heroku上運行一個django應用程序與gunicorn。我的heroku日誌文件中的這個錯誤是什麼意思?

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 

回答

3

基本上它在錫上說什麼。在Heroku堆棧中,一個進程始終以SIGTERM結束,它告訴進程正常關閉,並給它10秒的時間。

如果沒有在10秒內結束你再得到一個錯誤R12和SIGKILL,它本質上是一個殺。

現在,爲什麼這裏發生的事情並不完全清楚的日誌不回去遠遠不夠,但你可以看到SIGTERM發生在20點56分39秒

+0

酒吧正常的過程停機,Heroku的將殺死整個服務器進程,如果請求時間超過30秒的時間重新啓動。 – 2012-01-11 01:54:45

+2

不正確。如果動態過程需要30秒以上的時間,路由網格會向用戶返回一個錯誤,但不會觸及測功機。用杉樹堆棧,你只需要在有30秒窗口返回單個字節和路由網格將讓該請求繼續滾動55秒窗口(從而使流連接) – 2012-01-13 14:45:52

+0

好吧,克雷格沒有提到技術性當我在問這件事。 :-) – 2012-01-14 01:15:39

0

沒有足夠的日誌以確定地顯示你的問題(錯誤R12可能意味着一些事情)。爲了記錄,我沒有運行Gunicorn。也就是說,我遇到了類似的問題。

原來,雪松堆棧不喜歡你settings.py中的INSTALLED_APPS部分提到的應用程序,如果沒有該應用程序的其他地方,項目的模塊。

我通常編寫我的應用程序到INSTALLED_APPS之前,我甚至開始它views.py代碼,並在本地服務器DJANGO不抱怨,所以我習慣了這樣做。不幸的是,它打破了雪松堆棧。

當我評論指出,沒有一個模塊項目其他地方的應用,推動了新版本時,它開始直線距離再次合作。

相關問題