Logic Apps(标准版)双工作流并发控制方案咨询
Logic Apps(标准版)避免两个工作流并发运行的方案
针对两个工作流同时运行触发429错误的问题,以下是几个可行的互斥运行实现方案:
存储账户独占锁方案
两个工作流启动的第一步,都去Azure存储账户尝试创建一个特定名称的Blob(或文件),设置规则为「仅当Blob不存在时才创建」。如果创建成功,说明当前无其他工作流运行,可继续执行后续逻辑;如果返回409冲突,直接终止当前工作流(或进入延迟重试)。注意工作流执行完毕必须删除该Blob,避免后续实例无法获取锁。工作流内置并发控制+状态检查
- 分别给两个工作流的触发配置开启「并发控制」,将「最大并行实例数」设为1,从源头限制单个工作流的并发
- 在每个工作流开头添加动作,调用Logic Apps的
List Runs接口,检查另一个工作流是否存在「Running」状态的实例。如果有,直接终止当前运行;无则继续执行。
服务总线排他锁方案
搭建一个Azure服务总线队列,开启会话功能或使用排他接收模式。两个工作流启动时,先尝试从队列接收一条控制消息(队列空则自行发送一条),只有成功独占接收消息的实例才能继续执行。工作流完成后,删除或发回消息,释放锁资源。
内容的提问来源于stack exchange,提问作者Banuka Sonel
相关产品推荐
相关产品推荐

