Reputation: 64699
How do you diagnose why manage.py celerybeat
won't execute any tasks?
I'm running celerybeat via supervisord with the command:
/usr/local/myapp/src/manage.py celerybeat --schedule=/tmp/celerybeat-schedule-myapp --pidfile=/tmp/celerybeat-myapp.pid --loglevel=INFO
Supervisord appears to run celerybeat just fine, and the log file shows:
[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
I have several periodic tasks showing as enabled on http://localhost:8000/admin/djcelery/periodictask
which should run every few minutes. However, the celerybeat log never shows anything being executed. Why would this be?
Upvotes: 18
Views: 19155
Reputation: 24089
We recently upgraded from celery 4 to celery 5.
Apparently the -l
flag has been removed, or re-named?
Works in celery4, but not celery 5:
celery -A pm -l info beat
Remove -l
:
celery -A pm beat
Upvotes: 1
Reputation: 14505
celerybeat will just schecdule task, wont execute it. To execute task you need to also start worker. You can start celery beat as well as worker together. I use "celeryd -B"
In your case it should look like:
/usr/local/myapp/src/manage.py celery worker --beat --schedule=/tmp/celerybeat-schedule-myapp --pidfile=/tmp/celerybeat-myapp.pid --loglevel=INFO
or
/usr/local/myapp/src/manage.py celeryd -B --schedule=/tmp/celerybeat-schedule-myapp --pidfile=/tmp/celerybeat-myapp.pid --loglevel=INFO
Upvotes: 28