当前位置: 首页 > 知识库问答 >
问题:

我如何中止所有具有特定名称的作业?

傅琦
2023-03-14

我正在尝试设置一个脚本,以杀死/中止所有Jenkins中带有特定名称的作业。我很难找到Jenkins类的文档以及其中包含的内容。

我知道有可用的插件,但我被指示不要使用它们。另外,我在这里提到了几个半相关的问题(如何在不重启服务器的情况下阻止Jenkins上无法阻止的僵尸工作?),(取消排队构建并中止使用Groovy for Jenkins执行构建),我尝试重新编写其中的一些代码,但这并不会导致作业被终止:

import hudson.model.*

def jobList = Jenkins.instance.queue

jobList.items.findAll { it.task.name.contains('searchTerm') }.each { jobList.kill(it.task) }

我还尝试了以下方法:

def jobname = ""
def buildnum = 85

def job = Jenkins.instance.getItemByFullName(jobname)
 for (build in job.builds) {
     if (buildnum == build.getNumber().toInteger()){
       if (build.isBuilding()){
         build.doStop();
         build.doKill();

       }
     }

}

第一个脚本不执行任何操作,而第二个脚本抛出一个NullPointerException,而不是强制终止作业:

java.lang.NullPointerException: Cannot get property 'builds' on null object

共有1个答案

施俊远
2023-03-14

我设法让它工作起来;我的第二个例子不起作用,因为我大脑放屁了,而我测试它的工作没有构建(

def searchTerm = ""
def matchedJobs = Jenkins.instance.items.findAll { job ->
        job.name.contains(searchTerm)
def desiredState = "stop"

if (desiredState.equals("stop")) {
            println "Stopping all current builds ${job.name}"
            for (build in job.builds) {
                if (build.isBuilding()){
                    build.doStop();
                    println build.name + " successfully stopped!"
                }
            }
}
 类似资料:
  • 问题内容: 是通过其他方式或查询来查找具有特定列而不是如下所示的数据库表名称的方法, 问题答案: 在SQL Server中,您可以查询。 就像是: 如果您有多个模式中的表,则可能需要其他查找来解析模式名称。

  • 问题内容: 是否有一种快速的方法可以从中的所有表获取所有列名,而不必列出所有表? 问题答案:

  • 问题内容: 我想编写一个简单的查询来选择PostgreSQL中的许多列。但是,我不断收到错误-我尝试了一些选项,但它们对我没有用。目前,我收到以下错误: org.postgresql.util.PSQLException:错误:“列”处或附近的语法错误 要获取具有值的列,请尝试以下操作: 有任何想法吗? 问题答案: 是 保留字 。除非您双引号,否则不能将其用作标识符。像:。 不过,这并不意味着您应

  • 问题内容: 我想获取给定类的所有子类及其完全限定名称的列表。我想从Eclipse复制它并粘贴到这样的文本文件中: 我试过了: 在做。 但是 出于某些奇怪的原因,这个列表没有列出子类的子类,而只列出了直接子孙。 类的打开视图,该视图在树组件中打印所有子类, 但是 此视图不允许我选择所有行并复制其名称。 还有其他技巧吗?有数百种课程,因此我想避免手动进行。 问题答案: 按照http://internn

  • 问题内容: 我正在使用fileBrowser在手机上查找文件,但是我想向用户显示我的应用程序可以打开的所有文件,然后用户选择一个。就像音乐播放器一样,它不仅可以显示用户所在文件夹中的歌曲,还可以显示手机,SD卡和内存中的所有歌曲。 问题答案: 在列出文件时使用文件名过滤器。以下示例列出了给定目录中的所有mp3文件(注意-以下代码未对之下的所有文件夹进行递归处理)-

  • 我正在建立一个本体论。 我有一个叫的类 我有一个名为的对象属性 我添加了一个相当于的