我需要从models.py调用一个芹菜任务(在tasks.py中),唯一的问题是tasks.py导入models.py,所以我不能从models.py导入tasks.py。
有没有办法简单地使用它的名字来调用芹菜任务,而不必导入它?出于同样的原因(防止循环导入),ForeignKey 字段也执行了类似的操作。
就在这里。
您可以使用:
from celery.execute import send_task
send_task('my_task', [], kwargs)
确保您的任务函数有一个名称:
from celery import task
@task(name='my_task')
def my_task():
...
希望能帮助到你!
在芹菜 3+ 中:
from celery import Celery
app = Celery()
app.send_task('my_task', [], kwargs)