Дженкинс запускает вычисления на мастере? - PullRequest
0 голосов
/ 06 ноября 2018

Я выполнял некоторые задания на Jenkins и заметил, что многие задания выполняются на главном сервере по какой-то причине, несмотря на более ранний вызов шага узла.

Я использую конвейерное задание.

Я извлек суть проблемы; мой тестовый код выглядит так:

node("arbitraryNode"){
  module = load "testFile.gvy"
  module.doStuff()
}

Загруженный testFile.gvy выглядит следующим образом:

def doStuff(){
  print("Doing stuff")
  findAllSquares(2000)  
  print("Stuff done")
}

def findAllSquares(n){
  finalList = []
  for (i in (0..n)){
    for (w in (0..i)){
      if (w * w == i){
        finalList.add(i)
        //Arbitrary n^2 time-consuming function
      }
    }
  }
  return finalList
}

return this

Когда я запускаю свой Jenkinsfile, после того, как напечатано «Doing stuff», это задание, кажется, выполняется на главном сервере 95% времени, несмотря на тот факт, что оно должно выполняться на указанном ведомом устройстве «произвольный узел».

Мой главный узел настроен правильно, с 0 исполнителями, без значащих меток и ограниченным исполнением. Может кто-нибудь сказать мне, что я здесь делаю не так? Я смутно помню, что слышал, что мы должны были выполнять ресурсоемкие этапы в своих собственных процессах через вызов batch / shell, но я не могу вспомнить, где я это слышал, и не помню, как это оправдано.

Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...