我在Jenkins有一些工作,使用Selenium通過網站的前端修改數據庫。如果其中一些作業同時運行,則可能導致由於髒讀導致的錯誤。有沒有辦法迫使詹金斯的某些工作無法同時運行?我寧願不必在數據庫上放置或拾取鎖,這可以通過任何數量的正在測試的用戶讀取或修改。有沒有辦法讓詹金斯的工作互相排斥?
29
A
回答
21
你想要Throttle Concurrent Builds插件,它可以讓你定義全局和每個節點的信號量。
鎖定和鎖存正在deprecated支持油門併發構建。
4
我試過locks & latches插件和port allocator插件作爲實現你想要做的事情的方法。對我來說都沒有可靠的工作。一些時間鎖定鎖&,但我偶爾會掛起工作。使用端口分配器作爲黑客將工作,除非你有多個jenkins節點,但配置開銷很高。我已經在最終結算是另一個黑客,但它工作可靠,使用核心詹金斯的東西(無插件):
- 建立在相同的機器上運行的主從節點(或沒有,如果你有大量的箱)
- 給這從一個單一的執行(關鍵)
- 領帶必須沒有到這個新的從節點
- 選擇設置從服務器的使用情況,以「只綁作業同時運行2個(或n)工作'如果它碰巧在新的奴隸上運行,它會搞砸你的其他工作
由於奴隸只有一個執行者,與其相關的工作永遠不能一起運行。
+2
太棒了!對於像我這樣的初學者來說,只需要注意一件事:綁定作業,在作業配置中使用「限制可以運行此項目的位置」選項。 – Linulin
相關問題
- 1. 詹金斯作業Windows PowerShell腳本$ lastexitcode沒有失敗的詹金斯工作
- 2. 詹金斯有沒有辦法阻止或減少重複工作?
- 3. 詹金斯沒有圖標
- 4. 詹金斯沒有失敗
- 5. 在詹金斯安排週末工作
- 6. 本地詹金斯Maven有沒有互聯網連接
- 7. 詹金斯的工作是由GitHub webhook戳,但沒有開始
- 8. 有沒有辦法讓這項工作?
- 9. 詹金斯格里特觸發不同的詹金斯工作
- 10. 詹金斯:gitlabCommitStatus不工作
- 11. 從詹金斯工作
- 12. 多詹金斯工作區
- 13. 有沒有辦法說明詹金斯在克隆Git回購中有多遠?
- 14. 斯卡拉 - 相互排斥的特質
- 15. 詹金斯的JUnit jar沒有看到
- 16. 詹金斯工作:無法從殼
- 17. 文件沒有出現在詹金斯工作區
- 18. 詹金斯管道如果還沒有工作
- 19. 無效:E:\詹金斯\工作區\ XXX.dll已經沒有TestFixtures
- 20. NOHUP沒有在詹金斯工作外殼
- 21. 工作dsl複製現有的詹金斯工作
- 22. 詹金斯掛斷:請等待詹金斯準備工作
- 23. 用詹金斯工作備份詹金斯主目錄
- 24. 詹金斯工作流並行步驟和詹金斯配置
- 25. 讓詹金斯忽略stderr的方法?
- 26. 有沒有辦法運行在聲明詹金斯管道結帳前階段?
- 27. 有沒有辦法來檢查詹金斯重新啓動歷史
- 28. 有沒有什麼辦法在詹金斯設置制動警告閾值
- 29. 詹金斯Twilio插件 - 有沒有辦法配置文本發送規則?
- 30. 詹金斯沒有從虛擬光驅
我沒有注意到Lock&Latches插件上的棄用警告,我將用這個新插件更新我的Jenkins,謝謝。 –