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

如何在Jenkins声明式流水线中限制Matrix配置的并行执行数量

1. matrixOptions参数的正确传值方式

你调试后得到的写法是正确的,matrixOptions需要传入hudson.plugins.throttleconcurrents.ThrottleMatrixProjectOptions类的实例,构造方法的两个布尔参数依次对应:

  • 第一个参数:throttleMatrixBuilds:是否限制Matrix父任务本身的并发数
  • 第二个参数:throttleMatrixConfigurations:是否限制Matrix生成的子配置项的并发数

你传入的new hudson.plugins.throttleconcurrents.ThrottleMatrixProjectOptions(false, true)符合你只限制子配置并发的需求,完整的基础配置参考如下:

pipeline {
    agent any
    options {
        throttleJobProperty(
            categories: ['ForTestMatrix'],
            throttleEnabled: true,
            throttleOption: 'category',
            matrixOptions: new hudson.plugins.throttleconcurrents.ThrottleMatrixProjectOptions(false, true)
        )
    }
    stages {
        stage('Test Matrix') {
            matrix {
                axes {
                    axis {
                        name 'Test'
                        values 'Example1','Example2','Example3','Example4','Example5','Example6'
                    }
                }
                stages {
                    stage('Run Test') {
                        steps {
                            echo "Running test for ${Test}"
                            sleep 10
                        }
                    }
                }
            }
        }
    }
}

2. 限流不生效的排查方案

按优先级从高到低检查以下配置:

  • 分类阈值设置错误:检查你创建的ForTestMatrix分类的全局最大并发数是否设置为5,注意不要和单节点最大并发数混淆,只有全局最大并发数会限制所有节点上的子配置总数量。
  • 插件版本过低:2.12版本之前的Throttle Concurrent Builds插件对声明式流水线的Matrix语法支持存在bug,先升级插件到最新稳定版再测试。
  • 测试用例阈值覆盖问题:你示例中的Matrix一共只有3个配置项,如果你设置的阈值≥3,自然会全部同时启动,测试时可以先把阈值调整为1,验证是否会串行执行即可判断限流逻辑是否生效。
  • 其他并发配置冲突:如果你的Job本身在配置页设置了全局最大并发构建数,或者勾选了允许并发构建的相关选项,可能会和限流插件的配置产生冲突,暂时关闭这些自带的并发限制后再测试即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 15:27:03