芹菜链对django不起作用
我的目的是按顺序调用两个任务 任务1完成后,调用任务2。到现在为止,我一直在做这个 为了按顺序执行任务,我使用了我在文档中找到的chain方法。但是我的任务不需要上一个任务的结果,正如文档所说的那样。因此,我将芹菜链对django不起作用,django,python-3.x,celery,django-celery,Django,Python 3.x,Celery,Django Celery,我的目的是按顺序调用两个任务 任务1完成后,调用任务2。到现在为止,我一直在做这个 为了按顺序执行任务,我使用了我在文档中找到的chain方法。但是我的任务不需要上一个任务的结果,正如文档所说的那样。因此,我将CELERY\u IGNORE\u RESULT=True定义为chain方法,在执行时不获取上一个任务的结果 下面是我如何编写代码的 task.py views.py 我每次尝试都会出现以下错误: |“AsyncResult”和“AsyncResult”的操作数类型不受支持 有人知道我如
CELERY\u IGNORE\u RESULT=True
定义为chain方法,在执行时不获取上一个任务的结果
下面是我如何编写代码的
task.py
views.py
我每次尝试都会出现以下错误:
|“AsyncResult”和“AsyncResult”的操作数类型不受支持
有人知道我如何解决这个问题吗?问题是。。。您应该改为链接签名:
chain(task1.s(标识符),task2.s(标识符))().get()
从文档:
chain原语允许我们将签名链接在一起,这样一个签名被一个接一个地调用,基本上形成了回调链
有关更多详细信息,请参见请发布完整的回溯。就像我的函数一样,不要使用参数,而是使用signatures.s()替换.si()不可变签名,并解决我的问题,谢谢@trinchet
@app.task
def task1(param):
...
@app.task
def task2(param):
....
from .task import task1, task2
from celery import chain
chain(task1.delay(identifier), task2.delay(identifier))().get()