如何定期运行作业,并且仅当作业尚未在Jenkins上运行时

如何定期运行作业,并且仅当作业尚未在Jenkins上运行时,jenkins,Jenkins,假设我有一个Jenkins作业,每5分钟运行一次,只需要3分钟,然后作业突然变得需要5分钟以上,比如说8分钟。在这种情况下,当Jenkins阻止执行新添加的作业直到已经运行的作业完成时,作业队列变满 我可以允许并行执行队列中的作业,但我更希望在最后一个作业仍在运行时立即取消新添加的作业。这对詹金斯可能吗?或者我应该寻找更复杂的作业调度解决方案吗?我认为您可以使用“为运行脚本准备环境”。当第二个作业启动时,可以搜索生成节点以查看同一作业当前是否正在运行,并取消排队的作业。我发现了更多信息: 如果队

假设我有一个Jenkins作业,每5分钟运行一次,只需要3分钟,然后作业突然变得需要5分钟以上,比如说8分钟。在这种情况下,当Jenkins阻止执行新添加的作业直到已经运行的作业完成时,作业队列变满


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

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


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

如果队列中已经有挂起的作业,则下一个计划作业将自动取消。因此,至少据我所知,队列中不应该满是挂起的作业。你有什么问题吗?@arasio啊,我测试得不够。你完全正确。如果你把这个评论作为回答,我会接受的。非常感谢。如果这对你有用那就好了。我写它作为回答。谢谢你的回答。使用Groovy脚本是一种可能的方法,但实际上我只需要防止构建队列中充满了许多被阻止的构建,而且根据@arasio的评论,我真的不需要为此做任何事情。我认为目前情况并非如此。我刚刚检查了一下,发现詹金斯在完成前一份工作之前开始了一份新工作。w/CRON H/30***