按名称调用Django芹菜任务

Mar*_*k P 9 python django celery

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

是否有一些方法可以简单地使用其名称来调用芹菜任务,而无需导入它?由于同样的原因(防止循环导入),对ForeignKey字段实现了类似的操作.

小智 16

就在这里.

您可以使用:

from celery.execute import send_task    

send_task('my_task', [], kwargs)
Run Code Online (Sandbox Code Playgroud)

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

from celery import task

@task(name='my_task')
def my_task():
     ...
Run Code Online (Sandbox Code Playgroud)

希望能帮助到你!


ksi*_*ndi 5

在芹菜3+:

from celery import Celery

app = Celery()
app.send_task('my_task', [], kwargs)
Run Code Online (Sandbox Code Playgroud)