如果可以运行更高优先级的作业,我如何设置Jenkins自动取消/杀死低优先级作业?
某些背景信息 - 此功能有一项功能请求: https://issues.jenkins-ci.org/browse/JENKINS-8405
如果没有实施这样的功能,我该如何实现?我的一些想法是尝试读取一个可能存在的Jenkins文件,该文件包含构建中的作业列表。而且,我可以使用包装器启动低优先级作业,该包装器生成一个单独的进程来监视此文件,并在需要运行高优先级作业时终止低优先级进程。
但上述内容相当复杂,所以我想避免这样做。我可以使用linux“nice”,除了内存需求很高,所以杀死进程真的更好。
答案 0 :(得分:1)
一个部分解决方案是使用Accelerated Build Now插件,它允许您在单击按钮时取消低优先级作业。话虽这么说,自动版本会更好。
https://wiki.jenkins-ci.org/display/JENKINS/Accelerated+Build+Now+Plugin
答案 1 :(得分:0)
您可以创建一个定期运行的主管作业,并检查队列中是否有高优先级作业,并在需要时中止低优先级作业。
当然,您需要确保主管作业本身永远不会卡在队列中。实现此目的的一种方法是为主管工作创建专用的虚拟从属设备。