芹菜:在另一个任务之后执行一个任务,但返回第一个任务的结果

2024-09-30 16:28:49 发布

您现在位置:Python中文网/ 问答频道 /正文

有时我需要在任务A之后运行任务B,但是返回任务A的结果

所以我会用链子,像这样:

@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

但这行不通。我需要:

  • B没有任何参数。它不接受
  • B必须在A完成后执行
  • 我不需要等待B完成,也不需要它的结果(B必须是异步的?)在
  • 如何返回in do\u all的结果?(必须同步吗?)在

是否可以用链或任何其他子任务原语来实现这一点?在


Tags: ofinchaintask参数returndefresult
1条回答
网友
1楼 · 发布于 2024-09-30 16:28:49

我不能用原语来处理这个问题,可能有一种。但是另一种可行的方法是,在任务a中使用on_successafter_return处理程序来启动任务B。如果您同时使用ignore_result选项,那么对任务B的调用将是真正的激发和忽略。在

相关问题 更多 >