2015-07-04 57 views
1

我有很多長時間運行的工作需要將近一天才能完成。分裂是不可能的。如果網絡出現故障,則所有進度都將丟失。 奴隸怎麼能生存斷線?如何支持Windows上的Jenkins奴隸斷開連接或重新啓動?

編輯1

我在Windows上運行的約300奴隸依賴於一個單一的詹金斯實例。使用手動方法連接從站。我無法將它們作爲常規的Windows服務運行,因爲有些測試操縱GUI元素並需要真正的交互式會話,否則測試失敗。

EDIT 2

根據Jenkins Cookbook我應該使用Cygwin + OpenSSH的方法,而不是與JLNP連接器自定義腳本。這可以提高穩定性嗎?

+1

您的奴隸正在運行還是Windows或Linux?如果是Linux,你是否使用SSH(來自主服務器)管理你的奴隸?使用SSH,我認爲如果網絡出現故障,主服務器會立即嘗試重新連接。 –

回答

0

Jenkins並非最初設計用於構建以在服務器或從屬重啓之間生存。有一個CloudBees Long-Running Build插件supports long-running builds但不幸的是,它僅適用於企業用戶,仍然是測試版。

我沒有找到任何免費的替代方案,並建議您嘗試改善您的網絡穩定性並拆分您的長期工作。至少你可以把你的測試分成邏輯組(測試套件)。

+0

常規用戶是否有其他選擇?我怎樣才能模仿這種行爲? – betodelrio

0

詹金斯現在有一個工作流程插件。它聲稱處理「服務器」重新啓動和失去與奴隸的連接。

From the link

工作流執行的一個重要特點是,它是懸浮。那 是,而工作流程正在運行您的腳本,您可以關閉 詹金斯或失去連接到奴隸。當它回來時,Jenkins 仍然會記住它在做什麼,並且您的工作流腳本 恢復執行,就好像它從未中斷過一樣。一種稱爲 的技術,「延續傳球風格」執行在實現這一點的 中扮演着關鍵角色。

(在所有未測試)

編輯:從@Jesse格里克的評論複製:

工作流程是開源的,可用於運行詹金斯1.580.1+或更高版本的任何人。 CloudBees Jenkins Enterprise確實包含了一個檢查點功能,但這不是簡單的必須讓一個版本能夠存活從機斷開連接並重新啓動Jenkins:這是自動的

+1

我已經嘗試過** Workflow Plugin **,但它不穩定。 Ther是一個* Checkpoint *功能,可以作爲可以繼續使用的保存狀態,不幸的是,這僅適用於企業用戶。 – betodelrio

+1

與@jayan相反,Workflow是開源的,適用於運行Jenkins 1.580.1及更高版本的任何人。 CloudBees Jenkins Enterprise確實包含了一個檢查點功能,但這並不是必須的,只需讓一個構建可以在從站斷開連接的情況下生效並重新啓動Jenkins:這是自動的。 –

+0

謝謝。將該信息添加到答案中。 – Jayan

相關問題