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
定义所有分支必须完成,然后状态可以过渡或结束。如果没有设置此参数,则这是默认值。