如何在芹菜中链接任务



我希望能够在芹菜中链接任务,以便第二个任务仅在第一个任务完成后执行。

在下面的示例中,我声明了 2 个任务。 hello()world() .我希望world()仅在hello()完成后执行。

tasks.py

import os
from celery import Celery
from time import sleep

CELERY_BROKER = "pyamqp://guest@localhost//"
app = Celery('tasks', broker=CELERY_BROKER)

@app.task
def hello():
    sleep(2)  # simulate slow computation
    return "Hello"
@app.task
def world():
    sleep(2)  # simulate slow computation
    return "World"

api.py

from celery import chain
res = chain(hello.delay(), world.delay())
print(res)

这将引发以下错误:

类型错误:|: "异步结果"和 的不受支持的操作数类型 "异步结果">

阅读有关 Celery Canvas 的链基元(工作流程(的信息。我建议阅读整个画布:设计工作流部分。当然,它谈到了如何构建您描述的任务链。

相关内容

  • 没有找到相关文章

最新更新