Azure Pipelines能否将作业队列处理从FIFO改为LIFO?
Azure Pipelines 实现优先运行最新作业的方案
Azure Pipelines 本身没有直接内置的选项可将作业队列从 FIFO(先进先出)切换为 LIFO(后进先出),但可以通过以下几种自定义方式实现类似效果,优先处理 main 分支的最新作业:
启用旧作业自动取消
在 Pipeline 的 YAML 配置中添加cancelPreviousBuilds: true,当 main 分支有新提交触发 Pipeline 时,系统会自动取消同一分支下仍在队列中或正在运行的旧作业,让最新作业直接占用资源开始执行。这是最贴合你需求的方案,示例配置如下:trigger: branches: include: - main pr: none jobs: - job: MainBranchBuild cancelPreviousBuilds: true steps: # 此处添加你的构建、测试步骤设置 Pipeline 优先级
如果使用自托管代理池,可在 Pipeline 编辑页面的「选项」中,将该 Pipeline 的代理池优先级设置为「高」。当队列中存在多个作业时,高优先级的 main 分支作业会被优先调度执行,虽不是严格的 LIFO,但能确保核心分支作业获得资源倾斜。自定义队列管理脚本
通过 Azure DevOps REST API 编写脚本,实现对队列作业的主动管理:当检测到 main 分支有新作业进入队列时,自动取消同分支下的旧队列作业。这种方式灵活性更高,但需要额外维护脚本逻辑。
内容的提问来源于stack exchange,提问作者Vertexwahn
相关产品推荐
相关产品推荐

