已正确配置的Scheduled Run为何无法触发执行?
问题排查与解决
核心问题:Schedule块位置错误
你的YAML里把schedules放在了resources.repositories.self节点下,这是用于仓库级别的触发器配置,而非Pipeline的全局定时任务。正确的做法是将schedules直接放在YAML的顶层(和variables、resources同级)。
修改后的YAML示例:
name: $(Date:yyyyMMdd)$(Rev:.r) variables: - template: ../global-vars.yml # 全局定时触发器放在这里 schedules: - cron: "0 */3 * * *" displayName: DB backup every 3 hours branches: include: - master always: true resources: repositories: - repository: self type: git name: Deployment trigger: none stages: - stage: DBBackup displayName: DB Backup jobs: - template: /templates/db/backup.yml
其他排查要点
- 分支匹配验证:确保当前Pipeline的配置是在
master分支上生效的,定时任务只会基于指定分支的配置运行。如果你的Pipeline是在其他分支上编辑的,需要合并到master分支后才会生效。 - 触发器启用状态:进入Pipeline的设置页面,切换到「触发器」选项卡,确认定时触发器(Scheduled triggers)处于启用状态,没有被禁用。
- 时区差异:Azure DevOps的Cron表达式默认使用UTC时区。你的配置是每3小时的整点执行(UTC时间),如果你的本地时区和UTC有偏移,实际执行时间会和预期有差异,需要核对UTC时间对应的本地时间是否符合你的等待窗口。
内容的提问来源于stack exchange,提问作者sneedster
相关产品推荐
相关产品推荐

