2013-06-26 40 views
5

当我运行这个命令芹菜拍。芹菜拍不能正常工作

[2013年6月27日02:17:05936:信息/ MainProcess] Celerybeat:开始...

[2013年6月27日02:17:05937:信息/ MainProcess]编写条目...

[2013-06-27 02:17:08,711:INFO/MainProcess] DatabaseScheduler:计划已更改。

[2013年6月27日02:17:08712:信息/ MainProcess]编写条目...

还停留在这个结果。但在我的settings.py中,我配置了CELERYBEAT_SCHEDULE。

CELERYBEAT_SCHEDULER = "djcelery.schedulers.DatabaseScheduler" 

from datetime import timedelta 

CELERYBEAT_SCHEDULE = { 
    'add-every-30-seconds': { 
    'task': 'celerytest.tasks.add', 
    'schedule': timedelta(seconds=30), 
    'args': (16, 16) 
    }, 

    'add-every-10-seconds': { 
    'task': 'celerytest.tasks.minus', 
    'schedule': timedelta(seconds=10), 
    'args': (20, 16) 
    }, 

} 

我的芹菜节拍怎么了?

回答

14

celery beat命令启动​​。此过程会安排任务并将其定期放入队列中。它不执行任务。

您需要启动celery beatcelery worker(我猜你正在使用Django的芹菜):

python manage.py celery beat 
python manage.py celery worker 

或者干脆:

python manage.py celery worker --beat 
+0

那为什么芹菜节拍不断发送任务,即使它只设置为“@periodic_task(run_every = crontab(day_of_month ='1'))'? – user2357067

+1

如果你正在使用DatabaseScheduler,你需要清理你的数据库,否则你可以删除'celerybeat-schedule'文件 –

+0

谢谢!顺便说一句,我可以使用芹菜定期任务来备份我的数据库? – user2357067