2012-01-10 19 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不抱怨,所以我习惯了这样做。不幸的是,它打破了雪松堆栈。

当我评论指出,没有一个模块项目其他地方的应用,推动了新版本时,它开始直线距离再次合作。

相关问题