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

Azure DevOps CD流水线长期滞留在队列,代理空闲仍无法执行

Azure DevOps CD流水线卡队列(代理空闲但未执行)排查方案

问题背景

基于YAML构建的CD流水线为现有正常流水线的复制品,但在所有代理均处于空闲状态时,该流水线持续卡在队列中超过3天未执行。

流水线队列卡住状态

排查与解决步骤

  • 核对代理池/队列配置
    确认新流水线指定的代理池、队列与正常流水线完全一致。重点检查YAML中pool字段的配置,若指定了特定代理需求,即使其他代理空闲,流水线也只会等待目标代理:

    pool:
      name: '目标代理池名称'
      demands:
        - agent.name -equals 特定代理名 # 若存在此配置,需确认该代理是否真的可用
    

    若目标代理存在离线、状态未同步等问题,会导致流水线持续等待。

  • 检查环境部署的阻塞项
    CD流水线部署到环境时,可能存在未完成的手动审批、未通过的环境检查(如安全门禁、合规扫描)。进入流水线关联的环境页面,查看是否有等待处理的审批请求,或检查规则是否触发了静默阻塞。

  • 验证流水线权限配置
    对比正常流水线的权限设置,确认新流水线的运行账户(服务主体或用户)拥有代理池访问权限、目标环境的部署权限。权限缺失可能导致流水线被静默拦截。

  • 查看代理队列的隐藏状态
    进入代理池管理页面,查看目标队列的「等待中的作业」列表,检查是否有作业被标记为「缺少特定能力」「权限不足」等状态。部分情况下代理显示空闲,但队列存在未被触发的阻塞规则。

  • 逐行对比YAML差异
    仔细对比新流水线与正常流水线的YAML代码,重点排查:

    • environment字段是否指定了不存在的环境或资源
    • 是否新增了未配置的demands需求(如特定工具、自定义代理能力)
    • 触发器/调度配置是否误设为未来执行时间
  • 刷新代理状态
    在代理池管理页面,选中空闲代理执行「重新启动代理」或「刷新状态」操作,部分场景下代理的空闲状态未同步到服务器,会导致流水线无法识别可用资源。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 12:02:37