这是我能够做到的骇人听闻的方式。我更改了工作流程,以找到可用的空闲从服务器,而不是查找从服务器是否忙,然后检查下一个从服务器是否空闲。这个常规脚本计算从站上繁忙执行程序的数量。它不断轮询,直到找到一个在线奴隶,其繁忙的执行者数量为零。我讨厌投票,并会要求知识渊博的会员加入,并提出一些建议以某种方式插入基于Jenkins事件的通知中。
import hudson.FilePathimport hudson.model.Nodeimport hudson.model.Slaveimport jenkins.model.Jenkinsimport groovy.time.*Jenkins jenkins = Jenkins.instancedef jenkinsNodes =jenkins.nodeswhile(1){ for (Node node in jenkinsNodes) { sleep(1000) // Make sure slave is online if (!node.getComputer().isOffline()) { //Make sure that the slave busy executor number is 0. if(node.getComputer().countBusy()==0) { println "'$node.nodeName' can take jobs !!!" return 0 } else { println "$node.nodeName' is busy !!!" } } else { println "'$node.nodeName' is offline !!!" } } sleep(1000)}它作为作业运行,并在找到合适的从站后立即返回。在詹金斯,返回0是成功的。
如果有更好的方法,请加入。对于必须进行的连续轮询,我并不满意。我也不是执行人专家。因此,如果存在任何缺陷,请纠正我。



