如何限制特定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
相关产品推荐
相关产品推荐

