Подтвердить что ты не робот

Celerybeat не выполняет периодические задания

Как вы диагностируете, почему manage.py celerybeat не выполнит никаких задач?

Я запускаю celerybeat через supervisord с помощью команды:

/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 никогда не показывает ничего исполняемого. Почему это должно быть?

4b9b3361

Ответ 1

celerybeat будет просто запускать задачу, не выполнив ее. Чтобы выполнить задачу, необходимо также запустить работника. Вы можете начать бить сельдерея, а также вместе работать вместе. Я использую "celeryd -B"

В вашем случае это должно выглядеть так:

/usr/local/myapp/src/manage.py работник сельдерея - бить--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