并行分支(Scatter Gather)

最近更新时间:2024-08-01 15:33:01

我的收藏

简介

并行分支(Scatter Gather)支持并行执行多个任务。 该组件中,可以添加多个分支,每个分支中都可以配置子流以独立执行任务。

操作配置

参数配置

参数
数据类型
描述
是否必填
默认值
最大并行数
int
并行执行的任务数,取值范围为2~8。实际并行数取分支数和最大并行数之间较小值。
4
根信息
string
根信息是一个变量,这里填入变量名称,根信息中保存了主流的 Message 信息。msg.vars.get('#根信息名称#').payload 即可访问主流的 payload 数据。当使用默认值 rootMessage 时,使用 msg.vars.get('rootMessage').payload 即可在子流中访问主流的 payload 数据。
rootMessage

配置界面


img_26.png



数据预览

无。

输入到子流中的 Message

Message 属性
payload
继承主流 Message 中的 payload 信息。
error
空。
attribute
继承主流 Message 中的 attribute 信息。
variable
集成主流的变量。

输出

并行分支的输出结果中,不会包含处理逻辑中使用的 variable 变量,最终输出的只有 payload 里的数据。 输出的 payload 是 dict 类型变量,里边汇总了各分支处理的结果。
组件输出的 Message 信息如下:
Message 属性
payload
dict 类型,key 是分支的编号,从"1"开始,value 是分支执行完成后的结果(最后一个组件输出的 payload)。
error
执行成功后,error 为空。
执行失败后,error 为 dict 类型,包含“Code”和“Description”字段:“Code”字段表示错误类型,“Description”字段表示错误具体信息。
attribute
不改变输入 attribute。
variable
不改变输入变量。

案例

当需要并行执行不同的任务时,使用并行分支比较合适。例如:要根据用户订单数据,去查询客户信息及产品信息,可以配置两个分支,一个执行客户信息查询,一个执行产品信息查询。
1. 添加并行分支组件,添加2个分支,配置默认即可。

img_27.png


2. 第一个分支配置客户信息查询,第二个分支配置产品信息查询,这里用两个简单的 HTTP 请求模拟。

img_28.png


3. 执行完成后查看并行分支的输出,切换到专家模式,可以看到 Payload 为包含2个 key 的字典。
key "1"代表分支1的结果,即查询到的客户信息;key "2"代表分支2的结果,即查询到的产品信息。

img_29.png