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

如何限制特定Jenkins流水线的并行运行数量?插件使用正确性确认

如何限制Jenkins流水线的最大并行运行数?

你用Throttle Concurrent Builds Plugin来实现限流的思路完全正确,这也是Jenkins生态里处理这类需求的标准方案,你的配置写法没问题,可以放心用。

配置参数拆解

先帮你理清楚这段配置里的关键参数,方便你后续调整:

  • categories: ['parallel_pipeline']:给这套限流规则打个分类标签,要是以后其他流水线也需要同样的限流逻辑,直接复用这个分类就行
  • maxConcurrentTotal: 3:全局范围内,属于这个分类的流水线最多同时跑3个,这正好对应你要的“最多3个部署并行”的需求
  • maxConcurrentPerNode: 3:每个Jenkins节点上,该分类的流水线最多同时跑3个,这里和全局限制保持一致就很合理
  • throttleOption: 'project':指定按项目维度限流,完全匹配你的场景
  • throttleEnabled: true:必须开这个开关,限流规则才会生效

整合后的完整Jenkinsfile

把限流配置和你的原有流水线整合后,代码是这样的:

properties([
    [
        $class: 'ThrottleJobProperty',
        categories: ['parallel_pipeline'],
        limitOneJobWithMatchingParams: false,
        maxConcurrentPerNode: 3,
        maxConcurrentTotal: 3,
        paramsToUseForLimit: '',
        throttleEnabled: true,
        throttleOption: 'project'
    ],
])

pipeline {
    agent { label "$JENKINS_AGENT" }
    parameters { 
        // 你的参数定义
    }
    options { 
        // 你的流水线选项
    }
    stages {
        stage('Checkout') { 
            // 检出代码的逻辑
        }
        stage('Config') { 
            // 配置初始化逻辑
        }
        stage('Deploy') { 
            // 部署执行逻辑
        }
        stage('Test') { 
            // 测试验证逻辑
        }
    }
    post {
        failure { 
            // 失败后的通知或处理
        }
        success { 
            // 成功后的通知或处理
        }
        always { cleanup() }
    }
}

额外小提示

  • 如果是多分支流水线,这个properties配置放在最外层就没问题,Jenkins能正确识别
  • 要是以后需要针对不同参数的流水线实例单独限流(比如不同环境的部署要分开限制),可以调整paramsToUseForLimit参数,指定用哪些参数来区分不同的运行实例

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:51:08