如何防止从两个不同的上游作业触发的两个下游作业的并行执行

时间:2015-05-27 09:47:18

标签: jenkins

enter image description here

我有作业A,它触发两个下游作业,比如作业B和作业C.这两个下游作业在主节点上并行执行。然后,作业B触发另一个作业,即从属节点上的作业1,作业C几乎同时在同一从属节点上触发作业2。此从属节点上配置的执行程序数为1,因为我不希望作业1和作业2同时运行。作业2排队,因为作业1已在该从属节点上运行。但是当作业1完成执行时,作业2会遇到执行者饥饿而陷入困境。

问题: - 作业2遇到执行者饥饿而陷入困境。

有没有办法,一旦作业1完成执行,作业2开始运行而不是获得堆栈。我也尝试过Throttle并发构建插件,但问题仍然存在。

提前致谢!

1 个答案:

答案 0 :(得分:1)

有几个插件可以进行资源管理:
https://wiki.jenkins-ci.org/display/JENKINS/Lockable+Resources+Plugin
https://wiki.jenkins-ci.org/display/JENKINS/Exclusion-Plugin
https://wiki.jenkins-ci.org/display/JENKINS/External+Resource+Dispatcher

有些会阻止作业执行,其他人则让作业“等待”资源(当作业正在运行时)。

您必须将Job1和Job2设置为使用某些资源,以便他们可以互相等待。