跳到主要内容

基础父 Flow

为每个输入启动一个 SubFlow,并等待所有 SubFlow 完成。

Definition graph

BasicParentFlow

Valid

python · examples/python/dex_examples/patterns/parallel-subflows/basic_parent_flow.py

SubFlowsStep.WaitFor 为每个请求创建一个 SubFlow 条件,并用 allOf 组合。只有所有子 Flow 都结束后,父 Flow 才会继续。当不需要部分完成或取消时,这是最简单的父子 fan-out。

核心实现

class SubFlowsStep(Step[list[str]]):
def __init__(self, example_subflow: ExampleSubFlow) -> None:
self.example_subflow = example_subflow

def wait_for(self, context: Context, requests: list[str]) -> Wait:
return Wait.all_of(
*(SubFlow.run(self.example_subflow, request) for request in requests)
)

def execute(self, context: Context, requests: list[str]) -> StepDecision:
return graceful_complete()


class BasicParentFlow(Flow[list[str]]):
def __init__(self, example_subflow: ExampleSubFlow) -> None:
self.subflows = SubFlowsStep(example_subflow)

def get_steps(self) -> StepList[list[str]]:
return StepList.start_step(self.subflows)

例子: examples/python/dex_examples/patterns/parallel-subflows/basic_parent_flow.py

相关内容