如何在Jenkins/Hudson中管理作业之间的共享资源?

3
我们有几个任务在不同的DB模式下运行应用程序。
现在每个任务都使用自己的DB模式。
这样非常方便。
如果同一个任务启动了多次,则这些构建将依次执行,而不是并行执行,因为它们使用相同的DB模式。
在Jenkins中管理DB模式列表是否可行?
如果某个模式现在没有被任何任务使用,则新任务可以开始使用这个空闲模式。
是否有一些插件可以实现这个功能?

你的工作持续时间是多久? - plsgogame
不同的。5-10 分钟,1 小时,.. - Volodymyr Bezuglyy
这是一个有趣的问题。你找到解决方案了吗? - mmalmeida
2个回答

0

我认为,如果他们运行了10-15分钟,那么只需要设置一个作业的组装。 但在这种情况下,您可以使用脚本来处理数据库的管理。

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

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

如果我没有理解您的问题,请原谅我。


我不能只创建一个作业。应该有能力单独运行作业。我知道可以创建自己的数据库管理工具/脚本。但是Jenkins有很多插件,也许有一个可以解决我们的问题 :) - Volodymyr Bezuglyy
你不需要只创建一个作业,你可以将此脚本用于多个作业。而且这个脚本并不复杂。 - plsgogame
这将会很复杂。如何检查数据库未被使用?作业可以手动停止或由某些原因失败。在这种情况下,作业将不会通知数据库已空闲。 - Volodymyr Bezuglyy
如何检查数据库未被使用? 您将检查已全部编写的txt文件。作业可以手动停止或由某些原因失败。在这种情况下,作业将不会通知数据库空闲。这更加复杂,好吧。祝你在插件方面好运。 :) - plsgogame

0

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

我们在多个作业之间处理非常相似的情况时使用它。


我不理解如何使用它。作业可以使用db1或db2或db3等等。但是如果作业开始使用db1,则其他作业应该能够使用db2和db3。如何为这种情况配置插件? - Volodymyr Bezuglyy
我认为我误解了你最初的问题。看起来你真正想要的是让Jenkins能够从一个数据库池中在运行时为作业分配数据库。是这样吗?如果是,那么这不会有帮助。 - jwernerny
不仅限于数据库。在作业开始时分配一些资源,并在作业完成或被用户停止时将这些资源放回池中。 - Volodymyr Bezuglyy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接