【问题标题】:Jenkins to not allow the same job to run concurrently on the same node?詹金斯不允许同一个作业在同一个节点上同时运行?
【发布时间】:2012-06-22 14:37:53
【问题描述】:

我有 4 个节点和 2 个作业。任何节点都可以同时运行 2 个作业,任何作业都可以同时执行。我希望能够限制在同一台机器上同时运行相同的作业。例如:

工作:J1 和 J2 节点:N1、N2、N3 和 N4

我可以同时在同一个节点上运行 J1 和 J2。 我可以同时在 N1 和 N3 上运行 J1。 但是我不想同时在同一个节点上运行 J1 和另一个 J1 版本。

我尝试过“Locks and Latches”、“Jenkins Exclusive Execution”、“Exclusion Plugin”插件,这些插件在尝试协调不同的工作时效果很好。但我的案例是尝试管理同一作业的不同构建实例。

【问题讨论】:

  • 你忘了说你正在使用“Throttle”插件...

标签: jenkins


【解决方案1】:

试试Throttle Concurrent Builds Plugin。它允许限制每个节点或全局运行的项目的并发构建数量。在您的情况下,您应该设置:

  • 最大并发构建总数:0(= 无限制)
  • 每个节点的最大并发构建数:1

【讨论】:

  • 感谢您指定 0 = 无限制!我很想知道为什么将 0 指定为最大并发构建总数仍会导致并发构建,即认为 0 = 0。:)
【解决方案2】:

上次我检查过,每个作业只有一个单个实例可以一次运行,即:

如果您按 [build] 键两次,作业的第一个实例将被执行,并且只有在它完成后 - 下一个实例才会开始。

您真的能够同时运行 Job1-Build1 和 J1-Build2 吗?

【讨论】:

  • Gonen,感谢您的回复。是的,我可以同时运行 J1-Build1 和 J1-Build2。事实上,所有作业都将同时运行,没有任何问题。我的要求是防止同一个作业(即 J1)在同一个节点上运行:我想防止这种类型的场景:运行 J1-Node1 和 J1-node1 的另一个实例。我的要求:虽然 J1 的实例已经在 Node1(即 J1-Node1)上运行,但在另一个节点(即 J1-Node2)上而不是在 Node1 上启动 J1 的新实例。如果 Nod2 也在运行 J1 的一个实例,那么请稍等!谢谢马雷克
  • Marek,你可以走另一个极端,阻止 J1 的 any 实例启动,直到所有其他实例都完成,因此 J1-build2 直到 J1-build1 才启动完毕。应该使用“在构建下游项目时阻止构建”选项(在高级项目选项部分下)。
猜你喜欢
  • 1970-01-01
  • 2021-11-07
  • 1970-01-01
  • 2018-10-07
  • 2016-12-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多