我一直在Jenkins上运行一些作业,而且我注意到尽管有一个节点步骤调用较早,但由于某种原因许多作业仍在主服务器上运行。
我正在使用管道作业。
我解开了问题的症结;我的测试代码如下:
node("arbitraryNode"){
module = load "testFile.gvy"
module.doStuff()
}
已加载的testFile.gvy如下所示:
def doStuff(){
print("Doing stuff")
findAllSquares(2000)
print("Stuff done")
}
def findAllSquares(n){
finalList = []
for (i in (0..n)){
for (w in (0..i)){
if (w * w == i){
finalList.add(i)
//Arbitrary n^2 time-consuming function
}
}
}
return finalList
}
return this
当我运行Jenkinsfile时,在打印出“正在做的东西”之后,尽管该作业应该在指定的“ arbitraryNode”从属服务器上执行,但它似乎仍在95%的时间在主服务器上执行。
我的主节点配置正确,执行者为0,没有有意义的标签,执行受限。有人可以告诉我我在做什么错吗?我隐约记得曾经听说过我们应该通过批处理/ shell调用在自己的流程中运行资源密集型步骤,但是我不记得我在哪里听到的,也不记得这样做的理由。
谢谢。