我有一个Jenkins Job TriggerIngestion触发一个ingestion(在Postgres表)作业。当需要在Postgres表上插入/更新时,这个TriggerIngestion作业被远程触发。
我需要更新/插入是顺序的。因此,在任何作业失败时,我都需要暂停构建队列中其余的作业触发器。在解决故障后,我应该能够从构建队列的顶部恢复。
这应该不会影响在同一个Jenkins实例上运行的其他作业。请告诉我该怎么做。
由于需要顺序执行,我假设您已经禁用了并行作业执行。如果是这种情况,最简单的方法就是不结束初始Job。您可以简单地继续重试,直到Job成功,这样连续的Job将永远不会启动并保持在队列中。例如,参考下面的内容:
pipeline {
agent any
stages {
stage('Hello') {
steps {
script {
executeSomething()
}
}
}
}
}
def executeSomething() {
def flag = true
while(flag) {
try {
//Add to Postgres
if success => flag = false
} catch(Exception e) {
// Catching All errors
}
}
}
您必须为上述作业提出一个退出条件。我不认为你想永远重复尝试。