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

Jenkins中disableConcurrentBuilds仅单构建排队:如何实现多构建依次执行?

Jenkins流水线多构建排队解决方案

问题原因

你当前使用的disableConcurrentBuilds()默认行为是:当新构建触发时,若已有正在运行的构建,会自动丢弃之前的排队任务,仅保留最新的一个待执行任务。这就是连续触发10个构建时,只有第2个进入队列,其余被跳过的原因。

解决方案

方案一:调整disableConcurrentBuilds参数(无需额外插件)

如果你的Jenkins版本支持,可通过设置abortPrevious: false,让新构建触发时不取消已有的排队任务,所有构建都会进入队列等待执行:

pipeline {
    agent any
    options {
        disableConcurrentBuilds(abortPrevious: false)
    }
    // 后续构建步骤
}

方案二:使用Lockable Resources插件(兼容所有Jenkins版本)

该方法更可靠,适用于所有版本的Jenkins,步骤如下:

  1. 在Jenkins插件管理中搜索并安装Lockable Resources插件
  2. 进入Jenkins全局配置,找到「Lockable Resources」配置项,添加一个专属锁资源(例如命名为my-exclusive-pipeline-lock)
  3. 修改流水线配置,为需要独占执行的部分添加锁:
pipeline {
    agent any
    stages {
        stage('独占执行阶段') {
            options {
                // inversePrecedence设为false,保证先触发的构建先执行
                lock(resource: 'my-exclusive-pipeline-lock', inversePrecedence: false)
            }
            steps {
                // 你的构建、测试等步骤
            }
        }
    }
}

若要让整个流水线都独占执行,也可将锁直接放在pipeline块下:

pipeline {
    agent any
    lock(resource: 'my-exclusive-pipeline-lock', inversePrecedence: false)
    stages {
        // 所有阶段都会等待锁释放后依次执行
    }
}

采用该方案后,所有触发的该流水线构建都会进入队列,按照触发顺序依次执行,不会被丢弃。

内容的提问来源于stack exchange,提问作者Sven van den Boogaart

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 20:12:02