按名称调用Django芹菜任务

时间:2013-10-08 04:35:07

标签: python django celery

我需要从models.py调用芹菜任务(在tasks.py中),唯一的问题是,tasks.py导入models.py,所以我无法从models.py导入tasks.py。

有没有办法只使用其名称来调用芹菜任务,而无需导入它?为了相同的原因(防止循环导入),为ForeignKey字段实现了类似的事情。

2 个答案:

答案 0 :(得分:16)

是的,有。

您可以使用:

from celery.execute import send_task    

send_task('my_task', [], kwargs)

确保您的任务功能有一个名称:

from celery import task

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

希望它有所帮助!

答案 1 :(得分:5)

在Celery 3 +中:

from celery import Celery

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