动态任务:
参数:
dynamicTaskNameParam:来自任务输入的参数的名称,其值用于调度任务。 例如 如果参数的值为ABC,则调度的下一个任务类型为“ABC”。
Example
{
"name": "user_task",
"taskReferenceName": "t1",
"inputParameters": {
"files": "${workflow.input.files}",
"taskToExecute": "${workflow.input.user_supplied_task}"
},
"type": "DYNAMIC",
"dynamicTaskNameParam": "taskToExecute"
}
如果以user_task_2的输入参数user_supplied_task的值启动工作流程,Conductor将在调度此动态任务时调度user_task_2。
决策任务:决策任务与编程语言中的case ... switch语句相似。 该任务需要3个参数:caseValueParam: 其值将用作开关的任务输入中的参数名称。decisionCases: 映射其中key是caseValueParam的可能值,值是要执行的任务列表。defaultCase:在决策案例中找不到匹配值时执行的任务列表(默认条件)
Example
{
"name": "decide_task",
"taskReferenceName": "decide1",
"inputParameters": {
"case_value_param": "${workflow.input.movieType}"
},
"type": "DECISION",
"caseValueParam": "case_value_param",
"decisionCases": {
"Show": [
{
"name": "setup_episodes",
"taskReferenceName": "se1",
"inputParameters": {
"movieId": "${workflow.input.movieId}"
},
"type": "SIMPLE"
},
{
"name": "generate_episode_artwork",
"taskReferenceName": "ga",
"inputParameters": {
"movieId": "${workflow.input.movieId}"
},
"type": "SIMPLE"
}
],
"Movie": [
{
"name": "setup_movie",
"taskReferenceName": "sm",
"inputParameters": {
"movieId": "${workflow.input.movieId}"
},
"type": "SIMPLE"
},
{
"name": "generate_movie_artwork",
"taskReferenceName": "gma",
"inputParameters": {
"movieId": "${workflow.input.movieId}"
},
"type": "SIMPLE"
}
]
}
}
Fork任务:fork用于调度并行的任务。参数:forkTasks:任务列表的列表。 每个子列表被安排并行执行。 然而,子列表中的任务是以串行方式安排的。
Example
{
"forkTasks": [
[
{
"name": "task11",
"taskReferenceName": "t11"
},
{
"name": "task12",
"taskReferenceName": "t12"
}
],
[
{
"name": "task21",
"taskReferenceName": "t21"
},
{
"name": "task22",
"taskReferenceName": "t22"
}
]
]
}
当执行时,task11和task21被调度为同时执行。
动态fork任务:动态fork与FORK_JOIN任务相同。 除了在运行时使用任务的输入提供要分配的任务的列表。 当fork的任务数量不固定并且根据输入而变化时很有用。dynamicForkTasksParam:包含并行执行的工作流任务配置列表的参数名称dynamicForkTasksInputParamName: 参数的名字,此参数的值是一个映射,映射的key是fork任务的别名,value是fork任务的input
时间: 2024-12-06 19:55:34