Skip to content Skip to sidebar Skip to footer

Call Django Celery Task By Name

I need to call a celery task (in tasks.py) from models.py, the only problem is, tasks.py imports models.py, so I can't import tasks.py from models.py. Is there some way to call a c

Solution 1:

Yes, there is.

You can use:

from celery.execute import send_task    

send_task('my_task', [], kwargs)

Be sure that you task function has a name:

from celery import task

@task(name='my_task')
def my_task():
     ...

Hope it helps!


Solution 2:

In Celery 3+:

from celery import Celery

app = Celery()
app.send_task('my_task', [], kwargs)

Post a Comment for "Call Django Celery Task By Name"