Azure DevOps YAML管道多cron调度未同时生效如何解决
问题原因
Azure DevOps Pipelines 的定时调度为或逻辑独立匹配,不存在规则叠加排除的机制:只要时间点命中任意一条规则就会触发流水线,同一时间点命中多条规则时仅触发一次,不会因为某条规则不包含该时间点就跳过执行。
你配置的第一条规则0 */1 * * Mon-Sat已经覆盖了周一到周六所有整点时段,包含周二、周三的12-15点区间,第二条规则的所有触发时间完全落在第一条的覆盖范围内,没有任何独有触发时间点,因此表现为第二条规则被忽略。
正确配置方案
你需要把调度时段拆分为无时间重叠的3条独立规则,避免覆盖,即可实现预期效果:
trigger: none schedules: # 周一、周四、周五、周六全天每小时执行 - cron: '0 */1 * * Mon,Thu-Sat' always: true displayName: Run every hour on Monday, Thursday, Friday, Saturday branches: include: - beverly-hills-ops/matt.oconnor/904176-reactive # 周二、周三0-11点每小时执行 - cron: '0 0-11 * * Tue-Wed' always: true displayName: Run every hour 0AM-11AM on Tuesday and Wednesday branches: include: - beverly-hills-ops/matt.oconnor/904176-reactive # 周二、周三16-23点每小时执行 - cron: '0 16-23 * * Tue-Wed' always: true displayName: Run every hour 4PM-11PM on Tuesday and Wednesday branches: include: - beverly-hills-ops/matt.oconnor/904176-reactive
校验提示
配置保存后,可在流水线详情的Scheduled runs页面预览未来几周的计划触发时间,确认时段符合预期即可。
内容的提问来源于stack exchange,提问作者Konzy262
相关产品推荐
相关产品推荐

