2013-06-12 85 views
12

您如何诊断为什么manage.py celerybeat不会执行任何任务?Celerybeat不执行周期性任务

我通过supervisord运行celerybeat用命令:

/usr/local/myapp/src/manage.py celerybeat --schedule=/tmp/celerybeat-schedule-myapp --pidfile=/tmp/celerybeat-myapp.pid --loglevel=INFO 

Supervisord似乎运行celerybeat蛮好的,日志文件显示:

[2013-06-12 13:17:12,540: INFO/MainProcess] Celerybeat: Starting... 
[2013-06-12 13:17:12,571: WARNING/MainProcess] Reset: Account for new __version__ field 
[2013-06-12 13:17:12,571: WARNING/MainProcess] Reset: Account for new tz field 
[2013-06-12 13:17:12,572: WARNING/MainProcess] Reset: Account for new utc_enabled field 

我有一个显示几个周期性任务启用http://localhost:8000/admin/djcelery/periodictask应该每隔几分钟运行一次。但是,celerybeat日志永远不会显示任何正在执行的内容。为什么会这样?

回答

18

celerybeat将只是schecdule任务,不会执行它。 要执行任务,您还需要启动worker。你可以一起开始芹菜拍和工人一起。 我用 “celeryd -B”

在你的情况应该是这样的:

/usr/local/myapp/src/manage.py 芹菜工人--beat --schedule =的/ tmp/celerybeat时间表的myapp --pidfile =/TMP/celerybeat-myapp.pid --loglevel = INFO

的/ usr /本地/米YAPP/SRC/manage.py celeryd -B --schedule =/TMP/celerybeat时间表的myapp --pidfile =/TMP/celerybeat-myapp.pid --loglevel = INFO

+0

嘿@YoK - 你能在这里帮助吗,我通过芹菜多 - 芹菜和 - 调度选项运行芹菜,但是没有任何任务正在执行。我用'@ app.periodic_task'用'CELERY_IMPORTS =(“tasks”,)尝试装饰任务',但没有成功。 – Greg0ry