有时我需要在任务A之后运行任务B,但返回任务A的结果。查看文档,我尝试过(Avoid launching synchronous subtasks)
所以我会使用像这样的链:
@celery.task
def A():
return 5
@celery.task
def B():
return 2
def do_all():
chain = A.s() | B.s()
chain()
return result_of_A
但这不起作用。就我而言,我需要:
是否可以使用链或任何其他子任务原语来实现它?
答案 0 :(得分:0)
我无法用原始方式来做这件事;可能有一个。但是一种可行的方法是,使用任务A中的on_success
或after_return
处理程序来启动任务B.如果还使用ignore_result
选项,则调用任务B真是让人忘掉。