Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jenkins-仅在具有2+;遗嘱执行人免费_Jenkins_Jenkins Plugins - Fatal编程技术网

Jenkins-仅在具有2+;遗嘱执行人免费

Jenkins-仅在具有2+;遗嘱执行人免费,jenkins,jenkins-plugins,Jenkins,Jenkins Plugins,我们有许多运行父作业和多个子作业的多作业。父项执行一些预处理,然后启动第一个子作业。 例如: 父-签出git回购并准备代码 构建代码 单元测试 上传到HockeyApp 由于父进程在子作业运行的整个时间内都在运行,因此该进程从一个执行器开始,然后在子作业启动时选择第二个执行器。放下它,然后在下一次开始时将其捡起来 我们有4个节点,每个节点上有3-4个执行器。我们也没有网络驱动器,因此子作业必须与父作业保持在同一执行器上,以避免在作业之间传递整个工作区 问题是,如果一个作业正在运行且有两个

我们有许多运行父作业和多个子作业的多作业。父项执行一些预处理,然后启动第一个子作业。 例如:

  • 父-签出git回购并准备代码
    • 构建代码
    • 单元测试
    • 上传到HockeyApp
由于父进程在子作业运行的整个时间内都在运行,因此该进程从一个执行器开始,然后在子作业启动时选择第二个执行器。放下它,然后在下一次开始时将其捡起来

我们有4个节点,每个节点上有3-4个执行器。我们也没有网络驱动器,因此子作业必须与父作业保持在同一执行器上,以避免在作业之间传递整个工作区

问题是,如果一个作业正在运行且有两个执行器,那么另一个作业会被启动,然后紧接着另一个作业会被启动,它们很可能都会在同一个节点上结束,并发生如下情况:

节点1

  • 遗嘱执行人1-父母1
  • 遗嘱执行人2-子女1
  • 遗嘱执行人3-父母2
  • 遗嘱执行人4-父母3
现在Parent2和Parent3只是坐在那里等待一个自由的遗嘱执行人。最终,Parent1上的子任务结束了,然后2R3抓住了执行者,他们都在为之奋斗


有没有办法告诉Jenkins只在至少有2个执行者空闲的节点上启动父节点?我知道如果有人开始工作的速度足够快,我们最终还是会遇到人的问题,但这会大大降低发生这种情况的几率。

我认为你可以使用-,并为每一步定义你需要的免费执行者的数量。

太棒了,我来测试一下!它保存了执行器,但是没有将子作业分配给它,它仍然需要另一个空闲的执行器来分配子作业,所以它不会解决我的问题。我需要类似的东西,但这需要考虑多任务功能。谢谢你,谢谢你的努力!是否要同时只运行一个父作业?或者您可以将父作业的权重设置为3个执行器…我希望在至少有2个执行器空闲的节点上启动父作业,以便在父作业启动子作业时,保证在要运行子作业的节点上有可用的执行器。设置权重对我没有帮助,因为虽然它保留了执行者,但它不会在其上运行子作业,因此无法达到目的