Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

crontab not working with celery multi start

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.

like image 368
Jonathan Avatar asked Apr 28 '14 02:04

Jonathan


2 Answers

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
like image 166
Jonathan Avatar answered Oct 01 '22 08:10

Jonathan


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.

like image 21
MrDBA Avatar answered Oct 02 '22 08:10

MrDBA