所以我有一个Jenkins和一个奴隶在一起。对于这个从机,我有一个每天调度一次作业的调度器。
有时调度器在24小时后不会完成,这是很好的。环境是非常独特的,有时会发生这种情况。
这里的问题是,无论发生什么,调度程序都会在24小时后调度作业。然后,我得到的是一个仍然在从机上运行的调度器,同一个调度器被调度第二次,并等待前一个调度器完成。把所有的东西加起来,奴隶永远不会是自由的。
我想要的是一个调度选项,上面写着“在从机上调度这个调度器。如果这个调度器还在这个从机上运行--算了,忘了它,让我们看看24小时后会发生什么。”
有人有解决这个问题的办法吗?
感谢您的帮助!
PS:这是一台Windows服务器。
发布于 2016-03-01 17:35:38
您可以定义一个调度作业,它只查看作业是否正在运行,如果没有,则触发长时间运行的作业。您可以编写一个检查状态的脚本,例如:
$r = Invoke-Webrequest http://host/jenkins/job/PROJECTNAME/lastBuild/api/xml?depth=1
if ($r.Content -like '*<building>false</building>*')
{
echo "all go"
}
else {
throw 'job still running'
}如果成功,只需添加触发另一个作业即可。
编辑:这是一个powershell脚本。我以为你用的是windows。
https://stackoverflow.com/questions/35717795
复制相似问题