我有作业A,它触发两个下游作业,比如作业B和作业C.这两个下游作业在主节点上并行执行。然后,作业B触发另一个作业,即从属节点上的作业1,作业C几乎同时在同一从属节点上触发作业2。此从属节点上配置的执行程序数为1,因为我不希望作业1和作业2同时运行。作业2排队,因为作业1已在该从属节点上运行。但是当作业1完成执行时,作业2会遇到执行者饥饿而陷入困境。
问题: - 作业2遇到执行者饥饿而陷入困境。
有没有办法,一旦作业1完成执行,作业2开始运行而不是获得堆栈。我也尝试过Throttle并发构建插件,但问题仍然存在。
提前致谢!
答案 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设置为使用某些资源,以便他们可以互相等待。