我想阻止Jenkins节点在完成已经执行的作业后再执行任何其他作业。
我该怎么办?我目前正在告诉詹金斯准备关机。这会错误地停止向所有节点分配新作业。
计算机上有一个管道脚本。SetTemporaryOffline()方法,该方法在我尝试为每个节点只运行一个构建时适用。请注意,检查现有节点的行需要Groovy Sendbox不存在的权限,因此需要取消选中此复选框。
时髦的Sendbox
pipeline {
agent any
stages {
stage('Hello') {
steps {
echo 'Hello World'
}
}
}
post {
always {
script {
markNodeOffline("Mark node as offline")
}
}
}
}
@NonCPS
def markNodeOffline(message) {
node = getCurrentNode(env.NODE_NAME)
computer = node.toComputer()
computer.setTemporarilyOffline(true, new hudson.slaves.OfflineCause.ByCLI("Run only one build for each node"))
computer.doChangeOfflineCause(message)
computer = null
node = null
}
@NonCPS
def getCurrentNode(nodeName) {
for (node in Jenkins.instance.nodes) {
if (node.getNodeName() == nodeName) {
echo "Found node for $nodeName"
return node
}
}
throw new Exception("No node for $nodeName")
}
在节点页面的右上角有一个“将此节点临时标记为脱机”按钮:
超文本传输协议
问题内容: 如果我知道作业ID,有什么方法可以检索作业配置(配置中的某些属性)? 基本上,我正在做的是检查当前是否有任何正在运行的作业,然后我要检查当前正在运行的任何作业中是否存在某些属性值? 用于检索当前正在运行的作业的部分代码: 问题答案: 您可以在作业跟踪器中查看正在运行的作业的配置,该配置通常在端口50030上运行。
在浏览了spring文档之后,在我的代码中。 我面临的问题是,有时工作的终止是发生在预期和其他时间终止工作是不发生的。实际上,每次调用joboperator上的stop时,它都在更新BATCH_JOB_EXECUTION表。当终止成功发生时,作业的状态将通过杀死批处理过程中的jobExecution更新为STOPPED。其他失败的时候,它会完成批处理的其他不同流,并将BATCH_JOB_EXECU
错误:------崩溃开始 08-04 05:53:11.807 266 7-2667/com.example.kwei.minigame1 E/AndroidRuntime:致命异常:main process:com.example.kwei.minigame1,PID:2667 java.lang.nullpointerException:试图在com.example.kwei.minigam
我正在和TestNG一起学习Java中的Selenium Webdriver。我正在使用谷歌登录页面进行测试。 我在按顺序运行测试用例时遇到了麻烦。我想做的是: 运行@BeforeTest 运行测试 1(登录成功) 运行@AfterTest(关闭浏览器和驱动程序) 等到 AfterTest 方法完成,然后运行测试 2(登录失败) 但我的经历是: 运行@BeforeTest 运行测试 1(登录成功)
问题内容: 我正在一个有几个无法更改的脚本的项目中。这些脚本通过AJAX更新页面。更新完成后,我需要运行一些代码。 XMLHttpRequest完成时是否会触发任何事件?(或任何XMLHttpRequest状态更改?)。 不幸的是,我无法访问用于发出请求的特定XMLHttpRequest对象。 谢谢, 问题答案: 如果没有jQuery,则可以挂钩该方法以在XHR对象被编辑时为每个XHR对象的事件附
问题内容: 我有一些任务是在Java Quartz Jobs的帮助下执行的,但是我需要在某些情况下在代码中停止某些任务。我读到这可以通过InterruptableJob完成。但是我不知道我应该怎么做? 问题答案: 您需要将您的工作写成InterruptableJob的实现。要中断此作业,您需要Scheduler的句柄,然后调用 请查看上述类的@javadoc,石英发行版也包含此示例(example