芹菜多崩溃在heroku上

时间:2014-07-08 15:40:14

标签: django heroku celery

我已经为heroku部署了一个django应用程序,它使用芹菜来执行长时间运行的任务。出于性能原因(时间和内存),我产生了两个具有不同并发设置的工作程序并路由任务。它在我的本地环境中运行良好,但工作人员立即在heroku上崩溃。

2014-07-08T15:24:11.300344+00:00 heroku[worker.1]: Starting process with command `python manage.py celery multi start single multi -c:multi 8 -c:single 1 -Q:single single -Q:multi multi --loglevel=INFO`
2014-07-08T15:24:11.944619+00:00 heroku[worker.1]: State changed from starting to up
2014-07-08T15:24:13.386256+00:00 app[worker.1]: celery multi v3.1.8 (Cipater)
2014-07-08T15:24:13.386418+00:00 app[worker.1]: > Starting nodes...
2014-07-08T15:24:13.807448+00:00 app[worker.1]:     > single@f5bd1193-6b06-4822-8bea-6c45640d66c7: OK
2014-07-08T15:24:14.318063+00:00 app[worker.1]:     > multi@f5bd1193-6b06-4822-8bea-6c45640d66c7: OK
2014-07-08T15:24:16.242842+00:00 heroku[worker.1]: Process exited with status 0
2014-07-08T15:24:16.258695+00:00 heroku[worker.1]: State changed from up to crashed
2014-07-08T15:24:16.259282+00:00 heroku[worker.1]: State changed from crashed to starting
2014-07-08T15:24:27.430541+00:00 heroku[worker.1]: State changed from starting to up
2014-07-08T15:24:28.621064+00:00 app[worker.1]: celery multi v3.1.8 (Cipater)
2014-07-08T15:24:28.621229+00:00 app[worker.1]: > Starting nodes...
2014-07-08T15:24:29.103659+00:00 app[worker.1]:     > single@deb6a436-1ab7-4310-9a97-f137ad9bf682: OK
2014-07-08T15:24:29.667462+00:00 app[worker.1]:     > multi@deb6a436-1ab7-4310-9a97-f137ad9bf682: OK
2014-07-08T15:24:30.948397+00:00 heroku[worker.1]: State changed from up to crashed
2014-07-08T15:24:26.827871+00:00 heroku[worker.1]: Starting process with command `python manage.py celery multi start single multi -c:multi 8 -c:single 1 -Q:single single -Q:multi multi --loglevel=INFO`
2014-07-08T15:24:30.938523+00:00 heroku[worker.1]: Process exited with status 0

这就是我从日志中得到的全部内容......我是否需要为heroku设置一些特殊设置,或celery multi不能在单个dyno上工作(不再)了?我用谷歌提供了最明显的关键词,但没有看到答案。

非常感谢任何帮助或提示!

1 个答案:

答案 0 :(得分:1)

Celery Multi将节点作为守护进程启动,然后立即退出。进程监视器看到退出代码并认为程序已崩溃,因此它重新启动了dyno。

有关解决方法,请参阅此帖子: https://groups.google.com/forum/#!topic/celery-users/FDIrKPHv33s