15

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

有没有办法简单地使用它的名字来调用芹菜任务,而不必导入它?出于同样的原因(防止循环导入),ForeignKey 字段也执行了类似的操作。

4

2 回答 2

19

就在这里。

您可以使用:

from celery.execute import send_task    

send_task('my_task', [], kwargs)

确保您的任务函数有一个名称:

from celery import task

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

希望能帮助到你!

于 2013-10-23T10:01:04.693 回答
6

在芹菜 3+ 中:

from celery import Celery

app = Celery()
app.send_task('my_task', [], kwargs)
于 2016-04-05T18:05:45.980 回答