Jenkins多线程函数

Jenkins多线程函数,jenkins,jenkins-pipeline,Jenkins,Jenkins Pipeline,我需要在Jenkins管道中并行运行两个定义的函数。 正如jenkins中定义的那样,作业中使用的关键字parallel似乎不适用于函数调用。 我试过的是- def first_func(){ echo "first function" } def second_func(){ echo "second function" } node { task = [:] function_lists = ['first_func

我需要在Jenkins管道中并行运行两个定义的函数。 正如jenkins中定义的那样,作业中使用的关键字parallel似乎不适用于函数调用。 我试过的是-

def first_func(){
    echo "first function"
}

def second_func(){
    echo "second function"
}

node {
    task = [:]
    function_lists = ['first_func()', 'second_func()']
    stage ('build') {
        for (job in function_lists) {
            task[job] = { '${job}' }
        }
    
        parallel task
    }
}

不要真正调用函数。詹金斯有没有办法做到这一点?

是的,可以通过以下方式实现:

def first_func(){
    echo "first function"
}

def second_func(){
    echo "second function"
}

node {
    def task = [:]
    stage ('build') {
        // Loop through list
        ['first_func', 'second_func'].each { 
             def a = it;
              task[a] = { "${a}"()}
              }
    
        parallel task
    }
}
输出:

@meAbab为您做这项工作。如果可行的话,我不太确定在哪里/如何传递函数参数?@meAbab:欢迎。如果这对您有效,请接受答案。是的,您也可以这样做。您也可以使用映射而不是带有键值的列表来传递参数。