Celerybeat没有执行定期任务

时间:2013-06-12 17:26:59

标签: python django django-celery celerybeat

您如何诊断manage.py 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日志从不显示正在执行的任何内容。为什么会这样?

2 个答案:

答案 0 :(得分:19)

celerybeat只会编程任务,不会执行它。 要执行任务,您还需要启动工作人员。你可以一起开始芹菜殴打和工作。 我用“celeryd -B”

在你的情况下它应该是:

  

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

  

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

答案 1 :(得分:0)

我们最近从 celery 4 升级到 celery 5

显然 -l 标志已被移除或重新命名?

适用于 celery4,但不能 celery 5:

celery -A pm -l info beat

删除-l

celery -A pm beat