从 Pipeline 调用的 Gpars withPool 方法
Gpars withPool method called from Pipeline
我在 'PreVerifymanager.groovy' 中实现了我的 GParsPool.withPool,如下所示。
import groovyx.gpars.GParsPool
public class PreVerifyManager {
static final THREADS = 3;
public void callMe() {
PreVerifyManager pf = new PreVerifyManager()
def apps = ["App1","App2","App3"]
GParsPool.withPool(PreVerifyManager.THREADS) {
apps.eachParallel {
pf.CreateFile(it)
}
}
}
public void CreateFile(String path){
path = "D:\"+path+".txt";
println(path)
File file = new File(path)
file.write("Some text")
}
}
这在我的 IDE 中使用 PreVerifyManager 的主要方法工作正常。但是当我删除主要方法并在管道脚本中创建的 PreVerifyManager 对象上调用方法 callMe 时,它不起作用。
流水线脚本如下:
node {
def PreVerifyManagerObj
stage 'TibcoConfig'
echo 'Reading Tibco configuration!'
println "****************INSIDE PIPELINE****************"
def parent = getClass().getClassLoader()
def loader = new GroovyClassLoader(parent)
PreVerifyManagerObj = loader.parseClass(new File("D://Tibco_Automation//src//com//meet//PreVerifyManager.groovy")).newInstance()
PreVerifyManagerObj.callMe()
}
基本上,我将 GParsPool.withPool 实现与管道脚本集成在一起。欢迎任何意见。
问题已解决。在调用实际方法之前,您必须将 class 中引用的所有对象加载到管道脚本框中。
我在 'PreVerifymanager.groovy' 中实现了我的 GParsPool.withPool,如下所示。
import groovyx.gpars.GParsPool
public class PreVerifyManager {
static final THREADS = 3;
public void callMe() {
PreVerifyManager pf = new PreVerifyManager()
def apps = ["App1","App2","App3"]
GParsPool.withPool(PreVerifyManager.THREADS) {
apps.eachParallel {
pf.CreateFile(it)
}
}
}
public void CreateFile(String path){
path = "D:\"+path+".txt";
println(path)
File file = new File(path)
file.write("Some text")
}
}
这在我的 IDE 中使用 PreVerifyManager 的主要方法工作正常。但是当我删除主要方法并在管道脚本中创建的 PreVerifyManager 对象上调用方法 callMe 时,它不起作用。
流水线脚本如下:
node {
def PreVerifyManagerObj
stage 'TibcoConfig'
echo 'Reading Tibco configuration!'
println "****************INSIDE PIPELINE****************"
def parent = getClass().getClassLoader()
def loader = new GroovyClassLoader(parent)
PreVerifyManagerObj = loader.parseClass(new File("D://Tibco_Automation//src//com//meet//PreVerifyManager.groovy")).newInstance()
PreVerifyManagerObj.callMe()
}
基本上,我将 GParsPool.withPool 实现与管道脚本集成在一起。欢迎任何意见。
问题已解决。在调用实际方法之前,您必须将 class 中引用的所有对象加载到管道脚本框中。