资料整理
数据库存储
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
、WorkflowState
workflow
-> stage
-> task