2016-10-28 25 views
0

假設我有一個Jenkins工作,每5分鐘運行一次,只需要3分鐘即可完成,然後工作突然間需要5分鐘以上(說8分鐘)。在這種情況下,當Jenkins阻止新添加的作業的執行時,作業隊列變滿,直到已經運行的作業完成。如何定期運行一項工作,並且僅在Jenkins尚未運行時才工作

我可以允許同時執行隊列中的作業,但我更喜歡如果上一個作業仍在運行,新添加的作業會立即取消。詹金斯有可能嗎?或者我應該尋找更復雜的工作計劃解決方案?

+1

如果隊列中已有掛起的作業,則下一個排定的作業將自動取消。所以隊列不應該充滿未決的工作(至少據我所知)。對你有什麼問題嗎? – arasio

+0

@arasio Ahh我沒有足夠的測試。你是絕對正確的。如果您發表評論作爲答案,我會接受它。謝謝! – umainyosu

+0

這很好,如果這對你有用。我寫它作爲答案。 – arasio

回答

3

如果已經在隊列中掛起作業,下一個預定作業將自動取消。因此,即使正在運行的作業比排定的時間段長兩倍或更多,該隊列也不應該充滿待處理的作業。

0

我想你可以使用「爲運行準備一個環境」腳本。當第二個作業啓動時,您可以搜索構建節點以查看當前是否正在運行相同的作業,並取消排隊的作業。我發現這更多的信息:

Cancel queued builds and aborting executing builds using Groovy for Jenkins

+0

謝謝你的回答。根據@ arasio的評論,使用Groovy腳本是一種可能的方式,但實際上我只需要防止構建隊列充滿許多被阻止的構建,而且我根本不需要爲此做些什麼。 – umainyosu

相關問題