Conductor之动态分叉
- 动态分叉
关于动态分叉,参考1
动态分叉
有时候我们希望在运行时能动态添加分叉任务(注意是分叉任务,不是动态任务),Conductor当前版本也是支持的,但是经过试验的版本只支持串行分叉,不支持并行分叉(目前没人去实现此功能)。
- 定义效果:
{ "name": "开始部署应用(动态分叉-子流程)", "taskReferenceName": "dynamic_fork_join_deploy_app", "inputParameters": { "dynamicTasks": "${workflow.input.dynamicTasks}", "dynamicTasksInput": "${workflow.input.dynamicTasksInput}" }, "type": "FORK_JOIN_DYNAMIC", "dynamicForkTasksParam": "dynamicTasks", "dynamicForkTasksInputParamName": "dynamicTasksInput", "startDelay": 0, "optional": false, "asyncComplete": false }
- 构造的动态流程输入参数:
{ "dynamicTasks": [ { "subWorkflowParam": { "name": "sub_deploy", "version": 1 }, "taskReferenceName": "sub_dynamic_abc", "type": "SUB_WORKFLOW", "inputParameters": { "input": "${workflow.input}" } }, { "subWorkflowParam": { "name": "sub_deploy_app", "version": 1 }, "taskReferenceName": "sub_dynamic_def", "type": "SUB_WORKFLOW", "inputParameters": { "input": "${workflow.input}" } } ], "dynamicTasksInput": { // 注意此处需要与上述“taskReferenceName”名称一致,否则不能匹配 "sub_dynamic_abc": {}, "sub_dynamic_def": {} } }
流程启动后会自动生成分叉任务,如下图(此图为历史数据,与上述输入参数有出入):
注意⚠️:虽然图片上看起来是并行执行,但实际是串行执行。
动态分叉任务 ↩︎