【发布时间】:2011-09-10 16:49:55
【问题描述】:
我有几个使用共享资源(数据库)的作业,有时会导致构建失败(罕见)事件,即作业碰巧同时被触发。
例如,给定作业 A 到 E,有没有办法指定 A 和 C不应同时运行?
除了上述资源之外,构建是相互独立的(不是例如上游/下游关系)。
一种“蛮力”方式是将执行器的数量限制为一个,但如果大多数作业可以同时执行并且构建服务器上不缺少计算资源,这显然不太理想。
【问题讨论】:
-
看起来这个插件已经被弃用了:(
-
哪个插件在弃用列表中?
-
@marc.guenther:John 的评论与pwan's answer 中提到的Locks and Latches plugin 有关。它是proposed for deprecation here,但除此之外,我看不到它消失的任何迹象。所以我想你可以使用“Locks and Latches”或“Throttle Concurrent Builds”来实现这一点。
-
避免使用 Locks and Latches 插件。它在弃用列表中是有原因的。如果您在等待获取锁时手动中断作业,则该作业将不再运行,直到 Jenkins 主服务器重新启动。 Throttle Concurrent Builds 插件是一个更好的选择,它不会影响您的 Jenkins 安装。