我怎样才能防止同时运行两个詹金斯工程/建造?(How can I prevent two Jenki

2019-06-23 13:30发布

我有一个共享数据库中的两个詹金斯项目。 他们不能同时运行。 严格地说,没有超出非并发它们之间没有特别的依赖,但此刻我部分地管理通过运行一个接一个的“下游”这一约束。 这工作的大部分时间,但并非总是如此。 如果在第二个正在运行的源代码控制的变化发生时,首先会再次启动,他们将被同时,可能同时运行惨遭失败。

这是相似,但不完全相同, 如何防止某些詹金斯从工作同时运行? 不同的是,我没有问题“的线程数” - 我已经只有在任一个时刻,在任何给定的项目最多只有一个线程中运行,即使在以下情况:(不同项目)建立跺脚彼此。 这似乎排除了在该线程所有的几点建议。

Answer 1:

该门锁和闩锁插件应该解决您的问题。 创建一个锁,并有两个作业使用同一个锁。 这将防止从工作同时运行。

  1. 在安装插件“管理詹金斯:管理插件。”
  2. 定义(提供的名称)的锁(S)“管理詹金斯:配置系统。”
  3. 对于每一个工作,你想参加的排斥,
    1. 在“:配置:构建环境,”检查“锁”,
    2. 并从下拉列表中选择你的锁名。


Answer 2:

该可锁定资源插件 。 简单,我2016年5月运作良好。

安装插件。 在管理詹金斯>配置系统去上锁资源经理。
选择添加可锁定资源。 对于字段中输入值:名称并点击保存。 警告:不要在名称字段中输入空格。

在詹金斯> JOB_NAME>配置>常规,选择复选框:此版本需要锁定的资源。 在值字段中输入姓名或名称:资源。

开始构建。 在构建# 选择锁定的资源。 你应该看到类似这样的:此版本已锁定以下资源:RESOURCE_NAME - resource_description。

开始使用相同的资源不同的版本。 你会看到在显示作业名詹金斯状态/菜单构建的队列。 哈弗的文本显示发起者 ,等待资源resources_list,等待的时间

(也资源标记/标签可以使用)

添加作业配置页的截图,因为似乎是这里的“此版本需要锁定的资源”一些用户的一个问题是不可见的:**当没有选中该复选框,你应该只看到“[_]这个版本需要锁定的资源”



Answer 3:

编辑:以下信息是有效的为2014年4月10日

排除插件, https://wiki.jenkins-ci.org/display/JENKINS/Exclusion-Plugin如果几构建使用相同的资源非常有用的-例如,测试数据库。 所有你需要做的就是更新使用该资源的所有作业的配置,因此他们将永远不会并行运行,但是等待别人来完成。

:来自http://www.kaczanowscy.pl/tomek/2012-07/jenkins-plugins-part-iii-towards-continuous-delivery

这个插件不会并行运行阻止两个或更多的就业机会。
为了测试,为JOB1做到这一点

  1. 配置
  2. 在构建环境检查“添加资源管理排斥。”
  3. 然后添加 - >新资源 - >名称 - >锁
  4. 在构建 - >添加构建步骤
  5. 关键区块启动
  6. 添加构建步骤 - >添加任何你想要添加(补充睡眠15,以确保其持续时间较长,检查并发)。
  7. 添加构建步骤 - >临界块端
  8. 重复上述步骤,作业2,请确保您使用相同的锁名称“锁”。
  9. 同时手工打造两个作业。
  10. 显示器下方詹金斯运行进度 - >排除管理。


文章来源: How can I prevent two Jenkins projects/builds from running concurrently?