本文介绍了并行步骤和相关使用示例。
介绍
并行(Parallel)步骤用来并行执行多个步骤。它定义了多个分支(Branches),每个分支包含一系列串行步骤。
并行步骤的每个分支都对应一个本地变量。执行并行步骤会并发执行所有分支包含的串行步骤。这些串行步骤会改变其分支对应的本地变量。当所有分支执行结束后,可以通过输出映射将分支本地变量数组转换为并行步骤的输出。
说明 并行步骤最大分支数限制为100。
并行步骤包含以下属性:
- (必需)type:parallel表示该步骤是并行步骤。
- (必需)name:步骤名称。
- (必需)branches:多个分支,数组类型,每个元素对应一个分支。
(必需)steps:定义了分支所对应的多个串行步骤。
- (可选)end:当前步骤结束后是否继续执行其后定义的步骤。
- (可选)inputMappings:输入映射。
- (可选)outputMappings:输出映射。本步骤的
$local
是数组类型,其中的每个元素是一个JSON对象,记录了每个分支步骤执行的结果。说明 如果未指定输出映射,本步骤默认输出为空。
示例
下面的示例流程定义了一个并行步骤,这个并行步骤包含两个分支,每个分支又包含了一个传递步骤。
version: v1
type: flow
steps:
- type: parallel
name: myparallel
branches:
- steps:
- type: pass
name: pass1
outputMappings:
- target: result
source: pass1
- steps:
- type: pass
name: pass2
outputMappings:
- target: result
source: pass2
outputMappings:
- target: result
source: $local[*].result
pass1
的输出如下。{ "result": "pass1" }
pass2
的输出如下。{ "result": "pass2" }
myparallel
的输出如下。{ "result": ["pass1", "pass2"] }