Sequential Group¶
Tasks are organized into named groups. Groups run sequentially one after another, and tasks within each group also run sequentially, passing context between them.
This mode is automatically selected when you use mode="sequential" with multiple groups. You can also use mode="sequential_group" explicitly.
Implementation¶
from dotflow import DotFlow, action
@action
def step_a():
return {"group": "A", "step": 1}
@action
def step_b(previous_context):
return {"group": "A", "step": 2}
@action
def step_c():
return {"group": "B", "step": 1}
@action
def step_d(previous_context):
return {"group": "B", "step": 2}
def main():
workflow = DotFlow()
workflow.task.add(step=step_a, group_name="group_a")
workflow.task.add(step=step_b, group_name="group_a")
workflow.task.add(step=step_c, group_name="group_b")
workflow.task.add(step=step_d, group_name="group_b")
workflow.start(mode="sequential_group")
return workflow
if __name__ == "__main__":
main()
Workflow¶
flowchart TD
A[Start] -->|run| B[Group A]
B --> C[step_a]
C -->|response| D[step_b]
D --> E[Group B]
E --> F[step_c]
F -->|response| G[step_d]
G --> H[Finish]