"Blog Sonrası Seçimi" Jenkins ardışık düzeni paralel olarak yürütülen işlerin sayısını kontrol eder

Ardışık düzen içinde birden çok işi paralel olarak paralel olarak çalıştırabilirsiniz. Ancak paralel çalışan işlerin sayısını sınırlamak istiyorsanız ne yapmalısınız?

Örneğin, paralel olarak çalıştırılması gereken 10 iş vardır, ancak mevcut kaynaklar sınırlıdır ve aynı anda en fazla 3 tane çalışmasına izin verilir Bu durumda, bu gereksinimi karşılamak için Jenkins dosyasını nasıl değiştirmeliyim?

Kendi keşfim sayesinde aşağıdaki yöntemlerin kullanılabileceğini buldum.

Aşağıdaki şekilde 6 iş vardır, test1-test6 Bu 6 işin paralel olarak çalışması beklenir, ancak bir seferde sadece 2 iş paralel olarak çalışabilir.

Doğrudan Jenkinsfile koduna gidin:

boru hattı {

ajan herhangi biri

aşamalar {

stage ("paralel test") {

adımlar {

senaryo {

def dalları =

MAX_CONCURRENT = 2

// fifo oluştur

latch = new java.util.concurrent.LinkedBlockingDeque (MAX_CONCURRENT)

// fifo'da, maksimum öğe sayısını doldurun

for (int i = 0; i < MAX_CURRENT; i ++)

latch.offer ("$ i")

def job_list =

for (int i = 0; i < job_list.size; i ++) {

def name = job_list

dallar = {

def şey =

kadar bekleyin {

// Bir kaynak alın

şey = latch.pollFirst;

dönüş şey! =;

}

Deneyin {

// İşi yürüt

build (job: name, propagate: false)

}

en sonunda {

// Bir kaynağı serbest bırak

latch.offer (şey)

}

timestamps {

paralel dallar

Esasen, LinkedBlockingDeque sınıfı java kullanılır.Aşağıdaki web sitesi bu sınıfı tanıtır:

Yukarıdaki kodu ardışık düzen iş yapılandırmasının ardışık düzen seçenek kutusuna yazın. Groovy Sandbox Kullan seçeneğinin işaretlenemeyeceğini unutmayın.

Elbette, kodu Jenkinsfile dosyasına da yazabilir ve ardından işin yürütmesi gereken Jenkins dosyasını çalıştırabilirsiniz.

Yürütme günlüğü aşağıdaki gibidir, ilk önce test1 ve test2 yürütülür, kaynaklar elde edilebilir ve yürütülebilir ve sonraki işler kaynakları elde edemez ve ardından bloke edilir.

Test1 ve test2 yürütüldükten sonra kaynaklar serbest bırakılacak, test3 ve test4 kaynakları alacak ve ardından yürütmeye başlayacaktır.

Çalıştırıldıktan sonra blueocean aşağıdaki gibi görüntülenir:

Blueocean'dan test1 ve test6'nın paralel olarak yürütüldüğü, ancak gerçek ortamda aynı anda yürütülemedikleri görülebilir.

İş teklifleri

Zhu Dan'in kısa saçları ve düz yüzü yok olmuş ve kızının yüzü somurtarak aynaya el sallıyor.
önceki
80.000'in sadece Haval'i alabileceğini kim söyledi? Açıkçası satın alabileceğiniz çok sayıda SUV var!
Sonraki
Shen Mengchen, havaalanında "açılış" tatilini bitirdi
Wu Minxia'yı kızı için tebrikler! Emekli olduktan sonra
Yedi yılda bir milyon satışa imza atan Emgrand bir milyon model yükselişe geçiyor
Victoria Song bir öğrenci gibi küçük mavi bir şapka takıyor, bagajını taşıyor ve hayran olmak için güvenlik kontrolünden geçiyor
2018'de kaçırılmaması gereken 25 ithal gişe rekorları kıran film sizin için seçildi!
Kuantum teknolojisi GPS'in yaşamında devrim yaratıyor: navigasyon uydulara güvenmeden mümkün olacak
Haval H Temmuz'da 10.000'den fazla sattı, bu Çin'in pozitif gücü
Xie Na, cep telefonuyla oynamak için gece geç saatlerde işten eve geliyor, kırmızı spor giyim canlılık dolu
FPGA tabanlı Fast Static Spectrum Restoration System-AET üzerine araştırma
60.000 yuan butik bağımsız SUV modelleri, düşük fiyat, düşük kalite değil
Lin Yun'un hip-hop hazır erişteleri hayranlarla ve daha fazla yakınlıkla son moda etkileşimlerle dolu
SoC-AET'ye dayalı yeni bir genel amaçlı füze kaynaklı bilgisayar sisteminin tasarımı
To Top