SC Orchestrator接收多输出后如何让指定活动仅运行一次?
SC Orchestrator 多实例上游活动下游仅触发一次解决方案
你遇到的问题是SC Orchestrator的默认多实例传播机制导致的:上游活动返回N条输出时,默认会触发下游活动执行N次,仅配置单活动的Flatten参数无法打断这个传播链,可按以下步骤操作:
步骤1:添加Junction活动
在Reboot Pending活动和最后一个格式化活动之间,插入Runbook Control类别下的Junction活动:
- 不需要对Junction活动做任何额外配置,它的默认逻辑就是等待所有上游传入的执行实例全部完成后,仅向下游输出1次触发信号
步骤2:配置Reboot Pending的Flatten输出
打开Reboot Pending活动的属性页,切换到Run Behavior标签:
- 勾选
Flatten选项 - 选择输出格式为「将所有输出合并为单个数据集」
- 勾选你后续格式化需要用到的所有输出字段(如服务器IP、重启待处理状态、错误信息等)
- 保存配置
步骤3:调整活动连线逻辑
- 删除原来Reboot Pending到格式化活动的连线
- 先把Reboot Pending的输出连线到Junction活动
- 再把Junction活动的输出连线到格式化活动
- 格式化活动的输入数据源直接选择Reboot Pending的Flatten合并后的数据集即可
配置完成后,Reboot Pending活动会按服务器数量运行对应次数,Junction会等待所有校验任务完成后仅触发1次格式化活动,即可满足需求。
内容的提问来源于stack exchange,提问作者Sam
相关产品推荐
相关产品推荐

