Prefect V1中如何配置第三个流依赖两个前置流?
在Prefect V1中配置多依赖工作流的最佳方式
问题场景
我有一个工作流需求:第三个流依赖两个前置流,且这两个前置流的运行顺序无关紧要,只需二者全部完成后第三个流再启动。
我理想的配置逻辑是:
third_flow.set_downstream([flow_foo, flow_bar])
但目前我用了不必要的链式配置:
flow_foo.set_downstream(flow_bar) flow_bar.set_downstream(third_flow)
请问在Prefect V1中实现该需求的最佳方式是什么?
最佳实现方式
在Prefect V1中,你可以通过同时为third_flow设置多个上游依赖来实现这个需求,有两种简洁的写法:
- 使用
set_upstream方法,直接指定多个上游流:
third_flow.set_upstream([flow_foo, flow_bar])
这个写法和你理想中的set_downstream逻辑等价,因为set_upstream是set_downstream的反向操作,效果完全一致。
- 分别调用
set_downstream方法,为每个前置流设置下游为third_flow:
flow_foo.set_downstream(third_flow) flow_bar.set_downstream(third_flow)
这种方式也能确保flow_foo和flow_bar都完成后,third_flow才会启动,且两个前置流的执行顺序不受约束。
这两种方式都能避免不必要的链式依赖,完美匹配你的需求。
内容的提问来源于stack exchange,提问作者rumble_shark
相关产品推荐
相关产品推荐

