资料整理
数据库存储
StageExecution#getRequisiteStageRefIds()。t_ds_workflow_definition、t_ds_task_definition、t_ds_workflow_task_relation。任务相关的表:t_ds_workflow_instance、t_ds_relation_workflow_instance、t_ds_task_instance、t_ds_task_instance_context、t_ds_relation_sub_workflow数据结构
StageExecution#getRequisiteStageRefIds() 和 StageExecutionImpl。代码硬撸的拓扑排序。对以 DAG 为数据结构的任务进行编排时,需通过拓扑排序处理任务前后依赖,执行 fan-in 和 fan-out 效果,
任务一般都是 dag,大致上分为 2 类:workflow 和 pipeline。
对于 CI/CD 系统来说,还有些阶段性划分,比如 github 上的项目管理,阿里云云效的流水线:



它们会先执行串行的 stage,每个stage内的task组成一个dag
队列定义
WorkflowDefition、WorkflowInstance、WorkflowStateworkflow -> stage -> task状态处理并未全部在状态机内实现,执行环境通过 pub-sub 进行转发。