Parallel¶
from time import sleep
from dotflow import DotFlow, action, Context
@action
def task_foo(initial_context: Context):
sleep(2)
value = initial_context.storage
return value * value * value
@action
def task_bar(initial_context: Context):
sleep(1)
value = initial_context.storage
return value * value * value
def main():
workflow = DotFlow()
workflow.task.add(step=task_foo, initial_context=10)
workflow.task.add(step=task_bar, initial_context=10)
workflow.start(mode="parallel")
return workflow
if __name__ == "__main__":
main()
Workflow¶
flowchart TD
S[Start] -->|run| A[task_a]
S[Start] -->|run| B[task_b]
S[Start] -->|run| C[task_c]
S[Start] -->|run| D[task_d]
A --> H[Finish]
B --> H[Finish]
C --> H[Finish]
D --> H[Finish]