You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure DevOps YAML发布如何实现经典发布的ad hoc schedule临时定时调度

方案1:使用管道内置计划运行功能(最适配原ad hoc schedule需求,无需修改现有YAML)

这个是官方原生提供的临时调度能力,和经典发布模式的ad hoc schedule逻辑完全一致:

  • 进入对应YAML管道的「运行管道」页面
  • 找到调度选项模块,勾选「在以后的时间安排运行」
  • 选择你需要部署生产环境的具体日期、时间,确认要触发的分支、环境参数后提交即可
  • 系统会自动在你指定的时间点启动管道运行,到期后按你配置的部署逻辑执行

方案2:YAML内置延迟任务+环境审批(适合需将调度逻辑固化到配置的场景)

如果希望将临时调度的能力内置到YAML脚本中,可以新增延迟控制逻辑:

  • 在生产环境部署阶段前插入延迟任务,通过管道运行时传入的变量控制延迟时长,示例配置如下:
stages:
# 你原有的测试、预发等部署阶段
- stage: ProductionDeploy
  condition: eq(variables['enableProdDeploy'], 'true')
  jobs:
  - job: WaitScheduledTime
    steps:
    - task: Delay@1
      inputs:
        delayForMinutes: ${{ variables.prodDeployDelayMins }}
  - deployment: RunProdDeploy
    dependsOn: WaitScheduledTime
    environment: '生产环境' # 可绑定审批规则,延迟结束后需人工确认再部署
    strategy:
      runOnce:
        deploy:
          steps:
          # 粘贴你原有生产环境的部署步骤
  • 需要临时调度时,排队管道时将enableProdDeploy设为true,填入需要延迟的分钟数即可,到期自动执行部署

方案3:临时Cron触发器(适合需指定精确固定时间点的场景)

可以在YAML中预留临时调度的定时触发器配置,用完即可注释:

trigger: none
pr: none

# 临时生产部署调度,部署完成后注释/删除即可
schedules:
- cron: "0 14 30 11 *" # cron格式:分 时 日 月 周,示例为11月30日14点触发
  displayName: 临时生产环境部署
  branches:
    include:
    - main
  always: true
  variables:
  - name: enableProdDeploy
    value: 'true'
  • 需要调度时修改cron表达式为目标时间,提交代码到对应分支后,系统会自动在指定时间触发部署
  • 部署完成后注释掉schedules段即可,不会重复触发

内容的提问来源于stack exchange,提问作者iEnjoyFreeBacon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 07:12:01