2016-04-05 13 views
1

İşte şu anki durumum: Birçok köle ve birçok (çok) kurucuyla birlikte bir inşa aracımız var. Her köle, bir kerede yalnızca bir yapıyı çalıştırabilir. Her gece ya da taahhütte bulunan inşaatçılar var. Çok sayıda köleye sahip değiliz ve yapıların tamamlanması birkaç saat sürüyor. onun önceki örneği bunun için mevcut bir köle olacağını rağmen bitene kadar beklemede kalır, yine bir inşaatçı zaten çalışırken Biz istiyoruz ve tetiklenir: Burada Bir önceki bitene kadar beklemede olan Buildbot oluşturucu

ben ulaşmak için deneyin şeydir. Bu diğer yapımcıların arada çalışmasına izin verir.

Buildbot running sequential builders after they're finished okudum ve bu benim sorunumla uyuşmuyor.

Kilitlerimi okudum ama durumum için yararlı olacağından emin değilim. http://docs.buildbot.net/current/manual/cfg-interlocks.html

Ben mergeRequests argüman farkındayım ve bunu kullanmak ama bu sadece yeni tetiklenen inşa olmadan başlatılıp başlatılmadığını daha erken çalışan veya bekleyen dan kurar serbest bırakır, değil mekanizmasını oluşturur bekleyen için geçerlidir hiç beklemede değil.

Bunu nasıl başaracağını bilen var mı?

cevap

0

Doğru yoldasın. Global olan bir "MasterLock" istersiniz (oysa bir "SlaveLock", köle başına değerlendirilir). senin oluşturucudaki

my_lock = locks.MasterLock("some name", maxCount=1))

Ve sonra:

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

+0

Merhaba! Bahşiş için teşekkürler. Bunu deneyeceğim ama şimdi çok meşgulüm. Bunu kontrol etmek için zamanım olduğunda buraya geri döneceğim ;-) – XonqNopp

+0

Merhaba, bu konuya tekrar dönüyorum :) Bu yüzden bunu denedim, ancak köle her neyse, yapımcı tarafından engelleniyor, fark, kölelerle beklemesidir Bir önceki yapı tamamlanana kadar engellenir ... Kilit olmadan önce kölenin nasıl elde edilebileceği hakkında bir fikriniz var mı? – XonqNopp

İlgili konular