Jenkins pipeline 並行執行任務流

2022-01-13 02:04:06 字數 1727 閱讀 6326

筆者在《jenkins 在宣告式 pipeline 中並行執行任務》一文中介紹了如何在宣告式 pipeline 中執行並行的任務。前一段時間,jenkins 發布了 1.3 版的宣告式 pipeline(declarative pipeline),這個版本繼續增強了並行執行任務的能力:並行執行的任務可以是個任務流。官方稱這一功能為 "sequential stages",本文將解釋 "sequential stages",並通過 demo 演示其用法。

就是筆者在《jenkins 在宣告式 pipeline 中並行執行任務》一文中介紹的方式,我們在乙個 stage 中設定多個子 stage 並行執行:

stages 

stage(

'並行執行的 stage')

steps

}stage(

'stage2.2')

steps }}

}stage(

'stage3')

}

上面**中任務的執行過程如下圖所示:

任務 2.1 和任務 2.2 並行執行。

過去並行執行的任務都是單個的,但實際情況中我們還需要任務流級別的並行能力,如下圖所示:

上圖中顯示有兩條任務流在並行的執行,我們可以通過下面的**來實現:

pipeline 

steps }}

stage(

"build, deploy and test on windows and linux")

stages }}

stage(

"deploy") }}

stage(

"test") }}

}}stage(

"linux")

stages }}

stage(

"deploy") }}

stage(

"test") }}

}}}}

stage(

'stage3')

steps }}

}}

為了顯示任務的執行時間,筆者使用了 timestamper 外掛程式。下圖顯示了筆者精簡後的執行日誌:

紅框中的內容說明我們的兩個任務流是完全並行執行的。這就是 1.3 版的宣告式 pipeline 中增加的 "sequential stages" 功能。

如今 jenkins 對宣告式 pipeline 中並行任務的執行支援的非常給力(雖然經歷了乙個稍顯漫長的過程)。筆者在 2017 年初調研時發現宣告式 pipeline 無法支援並行的任務,後來開始支援比較初級的並行任務,筆者在《jenkins 在宣告式 pipeline 中並行執行任務》一文中進行了介紹。到今年(2018) 7 月份宣告式 pipeline 發布了版本 1.3,這個版本中開始支援本文介紹的任務流級別的並行。至此筆者認為 jenkins 宣告式 pipeline 中任務的並行執行功能已經比較完善了。

參考:

sequential stages (declarative pipeline 1.3 的新功能)

PowerShell 並行執行任務

在 powershell 中可以輕鬆的執行後台任務並且讓多個後台任務並行執行。本文介紹 powershell 中 job 相關的一些命令,並通過 demo 演示如何在後台同時執行多個任務。下圖描述了在 powershell 中執行後台任務的程序模型 此圖來自網際網路 首先我們需要乙個 powersh...

AsyncTask並行執行

使用asynctask時發現乙個奇怪的現象,即建立多個任務的時候,他是乙個乙個按順序執行的,查資料之後發現 在1.5中初始引入的時候,asynctask 執行 asynctask.execute 起來是順序的,當同時執行多個 asynctask的時候,他們會按照順序乙個乙個執行。前面乙個執行完才會執...

ORACLE 的並行執行

1.並行查詢 例如 select count from big table 未設定並行查詢時,這個查詢是典型的序列查詢,不設計並行化,可以用 select from big table dbms xplan.display 檢視一下執行計畫。啟用並行查詢方法多種,可直接在查詢中使用乙個提示,或者修改...