Conductor之动态分叉

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": {}}
    }
    

流程启动后会自动生成分叉任务,如下图(此图为历史数据,与上述输入参数有出入):
在这里插入图片描述
注意⚠️:虽然图片上看起来是并行执行,但实际是串行执行。


  1. 动态分叉任务 ↩︎