【问题标题】:Does jenkins can run the same job multiple times in parallel?jenkins 是否可以并行运行同一个作业多次?
【发布时间】:2021-06-24 11:18:36
【问题描述】:

我正在运行 2.249.3 版的 jenkins,并尝试创建一个删除所有旧实例的管道。

for (String Name : ClustersToRemove) {

    buildRemoveJob (Name, removeClusterBuilds, removeClusterBuildsResults)              
    parallel removeClusterBuilds

}

该方法的作用是:

def buildRemoveJob (Name, removeClusterBuilds, removeClusterBuildsResults) {
    
removeClusterBuilds[clusterName] =   {
    //Random rnd = new Random()
    //sleep (Math.abs(rnd.nextInt(Integer.valueOf(rangeToRandom)) + Integer.valueOf(minimumRunInterval)))
    removeClusterBuildsResults[clusterName] = build job: 'Delete_Instance', wait: true,  propagate: false, parameters: [
            [$class: 'StringParameterValue', name: 'Cluster_Name', value: clusterName],
            
    ]
}

但是...我只得到一个正在启动的下游作业。 我发现了这个错误https://issues.jenkins.io/browse/JENKINS-55748,但看起来肯定有人解决了这个问题,因为这是一个非常常见的场景。

也在这里 - How to run the same job multiple times in parallel with Jenkins? - 我找到了一个文档,但看起来它不适用于相同的工作

构建管道插件的版本是1.5.8

【问题讨论】:

    标签: jenkins jenkins-pipeline jenkins-plugins


    【解决方案1】:

    来自并行命令文档:

    Takes a map from branch names to closures and an optional argument failFast which will terminate all branches upon a failure in any other branch:
    
        parallel firstBranch: {
            // do something
        }, secondBranch: {
            // do something else
        },
        failFast: true|false
    

    因此,您应该首先创建所有执行的映射,然后并行运行它们。

    在您的示例中,您应该首先遍历字符串并创建执行映射,然后将其传递给并行命令。像这样的:

    def executions =  ClustersToRemove.collectEntries {
        ["building ${it}": {
            stage("Build") {
                removeClusterBuildsResults[it] = build job: 'Delete_Instance', wait: true,  propagate: false,
                        parameters: [[$class: 'StringParameterValue', name: it, value: clusterName]]
            }
        }]
    }
    
    parallel executions
    

    或不带变量:

    parallel ClustersToRemove.collectEntries {
    ...
    

    【讨论】:

      猜你喜欢
      • 2015-04-26
      • 1970-01-01
      • 2011-01-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多