Python Buildbot生成器挂起,直到上次完成

Python Buildbot生成器挂起,直到上次完成,python,buildbot,Python,Buildbot,以下是我目前的情况: 我们有很多奴隶和建筑工人的建筑机器人。每个从机一次只能运行一个构建。我们每晚或在提交时触发生成器。我们没有大量的奴隶,构建需要几个小时才能完成 以下是我试图实现的目标: 我们希望,当一个构建器已经运行并且再次触发时,它将保持挂起状态,直到它的前一个实例完成,即使它有一个可用的从属实例。这将允许其他建筑商同时运营 我已经读过了,它与我的问题不符 我读过联锁装置,但我不确定它是否对我的情况有帮助 我知道并使用了mergeRequests参数,但这只适用于挂起的构建,而不适用于将

以下是我目前的情况: 我们有很多奴隶和建筑工人的建筑机器人。每个从机一次只能运行一个构建。我们每晚或在提交时触发生成器。我们没有大量的奴隶,构建需要几个小时才能完成

以下是我试图实现的目标: 我们希望,当一个构建器已经运行并且再次触发时,它将保持挂起状态,直到它的前一个实例完成,即使它有一个可用的从属实例。这将允许其他建筑商同时运营

我已经读过了,它与我的问题不符

我读过联锁装置,但我不确定它是否对我的情况有帮助

我知道并使用了
mergeRequests
参数,但这只适用于挂起的构建,而不适用于将构建从挂起释放到运行的机制,或者如果新触发的构建在启动时根本没有挂起,则更早些


有人知道如何做到这一点吗?

你走的是正确的道路。您需要一个全局的“MasterLock”(而“SlaveLock”是按每个从机计算的)

my_lock=locks.MasterLock(“某个名字”,maxCount=1))

然后在构建器上:


BuilderConfig(…,locks=[my_lock.access('exclusive'))
您的路径是正确的。您需要一个全局的“MasterLock”(而“SlaveLock”是按每个从机计算的)

my_lock=locks.MasterLock(“某个名字”,maxCount=1))

然后在构建器上:


BuilderConfig(…,locks=[my_lock.access('exclusive'))

您好!谢谢你的提示。我想试试这个,但现在我很忙。有时间我会回来检查;-)嗨,回到这个主题:)所以我尝试了这个,但是从站被构建器阻塞了,不同的是它会等待从站被阻塞,直到上一个构建完成。。。你知道如何在锁释放之前阻止从机被获取吗?嗨!谢谢你的提示。我想试试这个,但现在我很忙。有时间我会回来检查;-)嗨,回到这个主题:)所以我尝试了这个,但是从站被构建器阻塞了,不同的是它会等待从站被阻塞,直到上一个构建完成。。。你知道如何在锁释放之前阻止从机被获取吗?