【问题标题】:How to manage shared resources between jobs in Jenkins/Hudson?如何在 Jenkins/Hudson 中管理作业之间的共享资源?
【发布时间】:2013-03-29 10:20:59
【问题描述】:

我们有几个作业在不同的数据库架构上运行我们的应用程序。
现在每个作业都使用自己的数据库架构。
现在很方便。
如果多次启动同一个作业,那么这些构建将一个一个地执行,而不是并行执行,因为它们使用相同的数据库方案。
是否可以在 Jenkins 中管理数据库架构列表?
如果某个方案现在没有被任何作业使用,那么新作业可以开始使用这个免费方案。
有没有一些插件可以做到这一点?

【问题讨论】:

  • 您的工作的持续时间是多少?
  • 不同。 5-10 分钟,1 小时,..
  • 这是一个有趣的问题。你有没有找到解决办法?

标签: jenkins hudson jenkins-plugins hudson-plugins


【解决方案1】:

我认为,如果他们运行 10 到 15 分钟,那么它会设置程序集只有一项工作。 但是在这种情况下,您可以使用脚本来管理您的数据库。

  1. 检查可用的数据库(可以使用名称为 db 的 db.txt 文件)
  2. 获取无名称数据库并将此名称放入您的应用程序或配置作业的配置文件中。
  3. 在 db.txt 文件上标记此数据库“不可用”。
  4. 完成作业后,将此数据库设置为可用。

如果您并行运行第二个作业,您的脚本检查列表 db 并放置第二个 db,因为第一个 DB 带有标记“不可用”。

如果我不明白你的问题,请原谅我。

【讨论】:

  • 我不能只创建一份工作。应该能够单独运行作业。而且我知道可以创建我们自己的数据库管理工具/脚本。但是Jenkins有很多插件。也许有一个可以解决我们的问题:)
  • 您不需要只创建一个作业,您可以将此脚本用于多个作业。而且这个脚本不会很复杂。
  • 会很复杂。如何检查未使用数据库?作业可以手动停止,也可能由于某种原因而失败。在这种情况下,作业不会通知数据库是免费的。
  • 如何检查 DB 没有被使用? -> 你将检查所有写入的 txt 文件。 作业可以手动停止,也可以由于某种原因而失败。在这种情况下,作业不会通知数据库是免费的。 -> 它更复杂,好的。祝插件好运。 :)
【解决方案2】:

尝试使用Jenkins Exclusion Plugin。您必须将每个 DB 定义为单独的资源,并将每个作业设置为监控正确的资源。

我们将它用于多个作业之间非常相似的情况。

【讨论】:

  • 我不明白如何使用它。作业可以使用 db1 或 db2 或 db3 或 ... 但如果作业开始使用 db1,那么其他作业应该能够使用 db2 和 db3。这种情况如何配置插件?
  • 我想我误解了你原来的问题。看起来您真正想要的是能够让 Jenkins 在运行时从数据库池中将数据库分配给作业。那是对的吗?如果是,那么这将无济于事。
  • 不仅是数据库。在作业开始时分配一些资源,如果作业完成或被用户停止,则将此资源放回池中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-05
  • 2021-02-10
  • 2019-03-07
  • 1970-01-01
  • 2020-06-16
  • 2012-09-19
相关资源
最近更新 更多