如何定期运行作业,只有在Jenkins尚未运行的情况下才能运行

时间:2016-10-28 06:50:20

标签: jenkins

让我们说我有詹金斯的工作,每5分钟运行一次,只需要3分钟就可以运行,然后工作突然变得超过5分钟(比如说8分钟)。在这种情况下,作业队列变满,因为Jenkins阻止新添加的作业的执行,直到已经运行的作业完成。

我可以允许在队列中并发执行作业,但我更喜欢在最后一个作业仍在运行时立即取消新添加的作业。詹金斯有可能吗?或者我应该寻找更复杂的作业调度解决方案吗?

2 个答案:

答案 0 :(得分:2)

如果队列中已有待处理作业,则会自动取消下一个计划作业。因此,即使正在运行的作业比计划的时间段长两倍或更长,队列也不应该充满待处理的作业。

答案 1 :(得分:0)

我认为您可以使用“为运行准备环境”脚本。当第二个作业启动时,您可以搜索构建节点以查看当前是否正在运行相同的作业,并取消排队的作业。我发现了更多信息:

Cancel queued builds and aborting executing builds using Groovy for Jenkins