2014-02-24 41 views
3

我試圖使用Groovy設置Jenkins中的執行程序數量。我找到了一個方法hudson.model.Hudson.instance.setNumExecutors(int),但它似乎並沒有真正的工作。問題在於,在運行Groovy腳本後,修改後的值出現在配置面板中,但我必須在該面板中單擊「保存」才能真正更改它。使用Groovy設置Jenkins中的執行程序數量

下面的代碼(如詹金斯Groovy插件構建步驟中執行):

import hudson.model.* 

// Initial number of executors is 1, let's increase the number of executors to 2 
Hudson hudson = Hudson.getInstance() 
hudson.setNumExecutors(2) 
hudson.save() 

def job = hudson.getJob("some_other_job") 
def future = job.scheduleBuild2(0, new Cause.UpstreamCause(build)) 
subBuild = future.get() 

// Set the number of executors back to 1 
hudson.setNumExecutors(1) 
hudson.save() 

回答

5

解決方法是在致電setNumExecutors()後致電hudson.setNodes(hudson.getNodes())

0

如果一切如常運作,除了你必須手動按下保存按鈕,使更改堅持那麼它聽起來就像您在進行更改後並未在您的Jenkins實例上調用save

+0

這就是我最初的想法,但我試過調用save(),它不會改變任何東西 - 我仍然看到相同的行爲。 – s4nk

+0

發佈一些代碼,以便我可以看到發生了什麼。 – ubiquibacon

+0

添加了代碼。正如你可以看到最初有一個執行者,然後我嘗試添加一個新的執行者來安排一個工作。由於沒有添加新執行器,因此腳本中計劃的作業無法啓動,因此所有內容都被阻止。 – s4nk

相關問題