Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 其他两个任务共享第一个任务的结果_Python_Celery - Fatal编程技术网

Python 其他两个任务共享第一个任务的结果

Python 其他两个任务共享第一个任务的结果,python,celery,Python,Celery,例如: (task_a.s() | task_b.s()) and (task_a.s() | task_c.s()) task_b and task_c share the result of task_a. 我怎么能只计算一次任务 我可以使用工作流来解决这个问题吗 使用变量存储计算值,并在条件中使用变量 ta = task_a.s() tb = task_b.s() tc = task_c.s() if (ta | tb) and (ta | tc) 通过使用组原语,您可以

例如:

(task_a.s() | task_b.s()) and (task_a.s() | task_c.s())  

task_b and task_c share the result of task_a. 
  • 我怎么能只计算一次任务
  • 我可以使用工作流来解决这个问题吗

使用变量存储计算值,并在条件中使用变量

ta = task_a.s()
tb = task_b.s()
tc = task_c.s()
if (ta | tb) and (ta | tc)  

通过使用
原语,您可以使用芹菜工作流:

如果芹菜应用程序已定义并命名为app,则必须创建一个新任务,以允许执行
操作

from celery import group

@task
def merge_results(results)
    return all(results)
然后,您的工作流程将是:

(ta.s() | group(tb.s(), tc.s()) | merge_results.s()).apply_async().get()

请给你们的问题加上一个真实的标题。我很好奇你们的根本问题是什么。你接近这个IMHO的方式是错误的。90%的时间里,如果你在等待结果,用芹菜有更好的方法来考虑。