本文主要是介绍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": {}} }
流程启动后会自动生成分叉任务,如下图(此图为历史数据,与上述输入参数有出入):
注意⚠️:虽然图片上看起来是并行执行,但实际是串行执行。
动态分叉任务 ↩︎
这篇关于Conductor之动态分叉的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!