背景
平台出现问题向jenkins发送了大量的任务, Build Queue 有9k+个任务, 手动删除效率低, 而且有的节点中的任务已经完成但是仍然在节点中显示"运行中"
解决办法
进入 Manage Jenkins -> Script Console , 然后执行后面的脚本
注意: 执行脚本期间等待几分钟,我试过如果刚执行完点击jenkins会导致jenkins挂掉,可能是一个bug,等待脚本执行完再操作就没有问题了。
单条结束任务
查看进程的名字
Thread.getAllStackTraces().keySet().each() {
t -> println("name:"+t.getName())
}
进程名字结果示例:
name:Thread-90
name:Scheduler-174573182-1
name:Thread-116
name:Thread-110
name:Thread-83
name:org.jenkinsci.plugins.workflow.steps.SynchronousNonBlockingStepExecution [#52]
name:SCMTrigger [#10]
停止特定进程
Thread.getAllStackTraces().keySet().each() {
t -> if (t.getName()=="刚才查出来的某条进程名字" ) { t.interrupt(); }
}
删掉所有进程
Thread.getAllStackTraces().keySet().each() {
t -> t.interrupt();
}
清掉所有Build Queue
Jenkins.instance.queue.clear()