6.8. parallelism
OpenShift Serverless Logic 序列化并行任务的执行。单词 parallel 并不表示同时执行,这意味着分支的执行之间没有逻辑依赖项。如果活跃的分支挂起其执行,则不活跃分支可以启动或停止任务的执行,而无需等待活跃的分支完成。例如,一个活跃的分支可能会在等待事件接收时暂停其执行。
并行状态是一种状态,它将当前工作流实例执行路径分成多个路径,每个分支一个。这些执行路径并行执行,并根据定义的 completionType 参数值重新加入到当前执行路径中。
JSON 格式的并行工作流示例
{
"name":"ParallelExec",
"type":"parallel",
"completionType": "allOf",
"branches": [
{
"name": "Branch1",
"actions": [
{
"functionRef": {
"refName": "functionNameOne",
"arguments": {
"order": "${ .someParam }"
}
}
}
]
},
{
"name": "Branch2",
"actions": [
{
"functionRef": {
"refName": "functionNameTwo",
"arguments": {
"order": "${ .someParam }"
}
}
}
]
}
],
"end": true
}
YAML 格式的并行工作流示例
name: ParallelExec
type: parallel
completionType: allOf
branches:
- name: Branch1
actions:
- functionRef:
refName: functionNameOne
arguments:
order: "${ .someParam }"
- name: Branch2
actions:
- functionRef:
refName: functionNameTwo
arguments:
order: "${ .someParam }"
end: true
在上例中,allOf 定义所有分支必须完成,然后状态可以过渡或结束。如果没有设置此参数,则这是默认值。