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

如何从其他Job程序化触发构建重放及实现Job构建优先级管控

实现Jenkins构建优先级的方案

一、重放被取消构建的方法

你已经保存了被取消的构建编号buildNumbers,可以通过以下代码重新触发这些构建:

1. 兼容Pipeline与FreeStyle Job的重放代码

def TARGET_JOB = "你的目标Job完整名称"
def job = Jenkins.instance.getItemByFullName(TARGET_JOB)

// 按原队列顺序重放构建,避免打乱原有执行逻辑
buildNumbers.each { buildNum ->
    def originalBuild = job.getBuildByNumber(buildNum)
    if (originalBuild) {
        // 获取原构建的参数(如果有)
        def paramsAction = originalBuild.getAction(hudson.model.ParametersAction.class)
        def triggerParams = paramsAction ?: new hudson.model.ParametersAction()
        
        if (!dryRun) {
            // 复用原参数触发新构建
            job.scheduleBuild2(0, new hudson.model.Cause.UserIdCause(), triggerParams)
        }
        println "重新触发构建 #${buildNum}"
    } else {
        println "警告:找不到编号为 #${buildNum} 的构建"
    }
}

注意事项

  • 重放时必须按原队列顺序触发,否则会破坏原本的任务执行逻辑
  • 如果原构建无参数,直接调用job.scheduleBuild2(0)即可
  • 执行脚本的用户需要拥有目标Job的构建权限

二、更优雅的构建优先级实现方案

除了取消重放的思路,还有几种更高效的方式实现优先级:

1. 用Priority Sorter插件直接配置优先级

  • 安装插件后,在目标Job的配置页找到「Priority Sorter」选项,设置优先级数值(数值越大优先级越高)
  • 高优先级的构建会自动插队到队列最前面,无需手动取消任务,完美适配禁用并发的Job

2. 自定义队列拦截器调整顺序

通过Groovy脚本实现队列任务拦截,在构建进入队列时直接调整优先级:

import hudson.model.Queue
import jenkins.model.Jenkins

// 自定义队列任务调度器
class PriorityDispatcher extends Queue.TaskDispatcher {
    @Override
    boolean canRun(Queue.Task task) {
        // 匹配目标Job
        if (task.fullDisplayName.contains("你的目标Job名称")) {
            // 设置高优先级,数值越大越靠前
            task.priority = 100
        }
        return super.canRun(task)
    }
}

// 注册调度器到Jenkins队列
Jenkins.instance.queue.dispatchers.add(new PriorityDispatcher())
  • 这种方式无需取消已有构建,直接在队列层面调整顺序,逻辑更简洁

3. 触发构建时直接指定优先级

通过脚本触发构建时,附带优先级参数:

def job = Jenkins.instance.getItemByFullName("你的目标Job名称")
// 设置优先级为100(数值越大优先级越高)
job.scheduleBuild2(0, 
    new hudson.model.Cause.UserIdCause(), 
    null, 
    new hudson.model.ParametersAction(), 
    new hudson.model.PriorityAction(100)
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 11:36:14