Question

I am trying to get Celery work for awhile now. All my crontabs works just fine when I test it synchronously

sudo celery -A testdjango worker --loglevel=DEBUG --beat

but when I do

celery multi start -A testdjango w1 -l info

none of my crontabs work. I am not sure why

Note: I tried other schedule intervals as well like with time delta The same thing happens with that as well.

So I am fairly certain this is not a crontab thing but somehow related to the way I am starting celery multi.

Also, the worker turns on just fine since I can see it in Celery Flower but no tasks get executed.

Was it helpful?

Solution

So, the answer is pretty straightforward

Since periodic tasks need Beat just add --beat with the command.

something like this

celery multi start -A testdjango w1 --beat -l info

OTHER TIPS

Alternatively instead of running Beat inside your worker process (which the docs for 3.1.18 say is not recommended) you can run it dedicated in the background with

celery beat -A testdjango --pidfile=/blah/beat.pid --detach

Be sure to save the pidfile somewhere so you can also kill the process later.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top