Azure Logic Apps如何设置6:00-19:00每15分钟运行的重复触发器
Logic Apps Recurrence触发器实现每日6:00-19:00每15分钟运行配置方案
问题原因
原生Recurrence触发器的小时区间为闭区间匹配规则:
- 结束小时设为18时,仅覆盖0:00-18:59的时间范围,最后一次触发为18:45,漏掉19:00的触发
- 结束小时设为19时,覆盖0:00-19:59的时间范围,会额外触发19:15、19:30、19:45三次任务
当前配置参考如下:
推荐配置方法(无额外动作,无多余运行记录)
通过基础Recurrence配置 + 触发器触发条件过滤实现,步骤如下:
- 基础参数配置
- 间隔填
15,频率选择Minute(分钟) - 时区选择业务对应时区,如国内业务选
China Standard Time(北京时间,必须配置,默认UTC时区会和北京时间差8小时) - 小时范围:开始小时填
6,结束小时填19,分钟保持默认的0、15、30、45即可
- 间隔填
- 配置触发条件过滤多余触发
- 点击Recurrence触发器右上角的
...菜单,选择「设置」 - 下滑找到「触发条件」选项,点击「添加」,输入以下表达式(如果使用非北京时间,替换表达式里的
China Standard Time为对应时区编码即可):@or( less(int(convertTimeZone(utcNow(),'UTC','China Standard Time','HH')),19), and( equals(int(convertTimeZone(utcNow(),'UTC','China Standard Time','HH')),19), equals(int(convertTimeZone(utcNow(),'UTC','China Standard Time','mm')),0) ) ) - 点击「完成」保存触发器设置
- 点击Recurrence触发器右上角的
规则说明
上述表达式的判断逻辑:
- 小时数小于19(即6:00-18:59区间)的所有15分钟间隔点,全部放行触发
- 小时数等于19时,仅分钟数为0(即19:00整)的时间点放行,19:15、19:30、19:45三个时间点直接被过滤,不会触发工作流运行
验证方式
保存配置后手动触发一次工作流,后续查看触发器运行历史,触发序列应为6:00、6:15、6:30……18:30、18:45、19:00,19:00之后到次日6:00前无多余触发即为配置正确。
内容的提问来源于stack exchange,提问作者Love_Coding
相关产品推荐
相关产品推荐

