// Throttle the build with both the number of current parent task and queued
// task.Look for both kernel and downstream module from previous kernel.
def queuedTask = q.getItems().findAll {
- it.task.name.startsWith(jobStartWithKernel) ||
- it.task.name.startsWith(jobStartWithModule)
+ (it.task.getParent().name.startsWith(jobStartWithKernel)) ||
+ (it.task.getParent().name.startsWith(jobStartWithModule))
}
-
if ((ongoingBuild.size() <= kernelEnabledNode.intdiv(2)) && (queuedTask.size() < limitQueue)) {
def job = toBuild.pop()
ongoingBuild.push(job.scheduleBuild2(0))
println "\\t trigering " + HyperlinkNote.encodeTo('/' + job.url, job.fullDisplayName)
} else {
println "Currently " + ongoingBuild.size() + " build currently on execution. Limit: " + kernelEnabledNode.intdiv(2)
- println "Currently " + queuedTask.findAll{it.task.name.startsWith(jobStartWithModule)}.size() + " module jobs are queued. Limit: " + limitQueue
- println "Currently " + queuedTask.findAll{it.task.name.startsWith(jobStartWithKernel)}.size() + " kernel jobs are queued. Limit: " + limitQueue
+ println "Currently " + queuedTask.findAll{it.task.getParent().name.startsWith(jobStartWithModule)}.size() + " module jobs are queued. Limit: " + limitQueue
+ println "Currently " + queuedTask.findAll{it.task.getParent().name.startsWith(jobStartWithKernel)}.size() + " kernel jobs are queued. Limit: " + limitQueue
Thread.sleep(random.nextInt(60000))
ongoingBuild.removeAll{ it.isCancelled() || it.isDone() }
}