定义:调度并行任务集
参数:
名称
|
描述
|
---|---|
forkTasks | 任务列表。每一个子列表并行执行,子列表中的任务是以串行方式进行执行的 |
例子:
{
"name": "fork_join",
"taskReferenceName": "forkx",
"type": "FORK_JOIN",
"forkTasks": [
[
{
"name": "task_10",
"taskReferenceName": "task_10",
"type": "SIMPLE"
},
{
"name": "sub_workflow_x",
"taskReferenceName": "wf3",
"inputParameters": {
"mod": "${task_1.output.mod}",
"oddEven": "${task_1.output.oddEven}"
},
"type": "SUB_WORKFLOW",
"subWorkflowParam": {
"name": "sub_flow_1",
"version": 1
}
}
],
[
{
"name": "task_11",
"taskReferenceName": "task_11",
"type": "SIMPLE"
},
{
"name": "sub_workflow_x",
"taskReferenceName": "wf4",
"inputParameters": {
"mod": "${task_1.output.mod}",
"oddEven": "${task_1.output.oddEven}"
},
"type": "SUB_WORKFLOW",
"subWorkflowParam": {
"name": "sub_flow_1",
"version": 1
}
}
]
]
}
当执行时;task10和task11同时执行
如果并行的数量不明确,则需要使用动态fork
动态fork
定义:和FORK_JOIN 任务功能类似,需要并行的数量不确定时使用
参数
名称
|
描述
|
---|---|
dynamicForkTasksParam | 并行执行工作流任务配置列表参数的名称 |
dynamicForkTasksInputParamName | 参数的名称该参数的值映射入如参数的名称,作为fork任务的引用名称和值 |
例子:
{
"inputParameters": {
"dynamicTasks": "${taskA.output.dynamicTasksJSON}",
"dynamicTasksInput": "${taskA.output.dynamicTasksInputJSON}"
}
"type": "FORK_JOIN_DYNAMIC",
"dynamicForkTasksParam": "dynamicTasks",
"dynamicForkTasksInputParamName": "dynamicTasksInput"
}
dynamicForkTasksInputParamName 引用inputParameters的值
包含的taskA如下
{
"dynamicTasksInputJSON": {
"forkedTask1": {
"width": 100,
"height": 100,
"params": {
"recipe": "jpg"
}
},
"forkedTask2": {
"width": 200,
"height": 200,
"params": {
"recipe": "jpg"
}
}
},
"dynamicTasksJSON": [
{
"name": "encode_task",
"taskReferenceName": "forkedTask1",
"type": "SIMPLE"
},
{
"name": "encode_task",
"taskReferenceName": "forkedTask2",
"type": "SIMPLE"
}
]
}