Azure Logic App中For Each循环无并发控制设置选项问题
For Each循环并发控制配置项消失问题说明
问题现象
需要配置For Each循环按顺序执行,避免循环内变量被多线程干扰。最初创建工作流时,可在循环设置中开启Concurrency Control,将Degree of Parallelism设置为1实现串行逻辑;当前打开For Each设置面板时已找不到该配置项,名下多个应用均出现该问题,仅部分应用保留该配置入口。
已知关联信息
- 出现问题的应用均由
Recurrence触发器触发 - 更换浏览器操作无法解决该问题
根因说明
该现象为Power Automate/Azure Logic Apps的既定产品规则,并非客户端或操作故障:
- 当工作流开启了触发器级别的并发控制后,流内所有
For Each循环的独立并发控制配置入口会被自动隐藏,循环的并行度将直接继承触发器的并发配置参数。 - 所有出现问题的流均使用
Recurrence触发器:这类触发器如果手动开启过并发触发(设置并行运行的流实例数大于1),或是被系统默认开启高并发运行模式,就会触发上述配置入口隐藏的逻辑。 - 仍保留配置项的应用,要么未开启触发器级别的并发控制,要么属于规则灰度推送前创建、且后续未修改过触发器并发配置的老流,或是使用了不受该继承规则约束的自定义/第三方触发器。
处理方案
根据实际需求二选一即可:
- 需要单独配置For Each循环的并行度:打开
Recurrence触发器的设置面板,找到Concurrency Control选项将其关闭,保存流后刷新编辑页面,For Each循环的并发配置项就会恢复显示。 - 仅需要实现全链路串行执行:不需要恢复For Each的配置入口,直接在
Recurrence触发器的并发控制设置中将并行度设置为1,此时整个流实例包括内部所有For Each循环都会默认串行运行,和单独设置For Each并行度为1的效果完全一致。
内容的提问来源于stack exchange,提问作者smm
相关产品推荐
相关产品推荐

