[Solved]-Celery: launch task on start


Someone on the Celery’s IRC channel give me the right way to do that by using the "worker_ready.connect" signal: http://docs.celeryproject.org/en/latest/userguide/signals.html#worker-ready

from celery.signals import worker_ready

def at_start(sender, **k):
    with sender.app.connection() as conn:
         sender.app.send_task('app.modules.task', args,connection=conn, ...)

It works like a charm now!


You need to define in the settings:

import djcelery
CELERY_IMPORTS = ("apps.app_name.module.tasks",)

Also if you dont have instaled celery broker you should install one I am using RabbitMQ, very good tutorial for how to use it you have in the celery documentation:


And then start from command line celery demon:

django-admin.py celeryd -v 2 -B -s celery -E -l INFO

Leave a comment