在管道中并行运行两个Jenkins作业,间隔2分钟

在管道中并行运行两个Jenkins作业,间隔2分钟,jenkins,parallel-processing,nodes,jenkins-pipeline,Jenkins,Parallel Processing,Nodes,Jenkins Pipeline,我有两个詹金斯的工作,我需要并行运行,但间隔1或2分钟。我的意思是,一旦“作业1”开始,那么在间隔1分钟后,“作业2”应该开始“作业1”大约需要6-7分钟才能完成。我能够并行地运行这些工作,但我无法在它们之间留出一两分钟的间隔。这是我的密码: node('LINUX_TEST_BOX'){ parallel 'Parallel_1': { node('LINUX_TEST_BOX') { stage 'P1'

我有两个詹金斯的工作,我需要并行运行,但间隔1或2分钟。我的意思是,一旦“作业1”开始,那么在间隔1分钟后,“作业2”应该开始“作业1”大约需要6-7分钟才能完成。我能够并行地运行这些工作,但我无法在它们之间留出一两分钟的间隔。这是我的密码:

node('LINUX_TEST_BOX'){ 
        parallel 'Parallel_1': {
          node('LINUX_TEST_BOX') {
              stage 'P1' 
                  build 'Job1'

          }
        }, 
             'Parallel_2': {
          node('LINUX_TEST_BOX') {
              stage 'P2' 
                  build 'Job2'


          }
  }
}
上面的代码运行良好。一旦Job1启动,如何使Job2在2分钟后运行?我要找的东西总共有两样

  • 如何在这两个平行作业之间留出间隙?(早些时候,我在“sleep”命令的顺序工作中得到了帮助,但同时我也不知道该怎么做)
  • 我希望两个作业都在同一个节点上运行。现在我正在节点中使用一个名为“LINUX\u TEST\u BOX”的标签。此标签可容纳4台机器,可选择任何机器运行。有没有办法确保两个作业在同一台机器上运行?(也许一旦Job1启动,我应该阅读它的api并在Job2中使用它。所以我需要立即创建Job2?我不确定这一点。想知道是否有更好的方法。)

  • 谢谢大家!

    如果它们需要在同一台机器上运行并且不需要隔离,那么您可能不需要多个节点调用。Parallel没有明确要求,所以您可以将其简化为

    node('LINUX_TEST_BOX'){ 
            parallel 'Parallel_1': {
                stage 'P1' 
                build 'Job1'
            }, 
              'Parallel_2': {
                stage 'P2' 
                build 'Job2'
              }
      }
    }
    
    或者,有一个名为NODE_NAME的环境变量,您可以将其传递到并行部分中的NODE函数中,该函数应该可以工作

    node('LINUX_TEST_BOX'){ 
            parallel 'Parallel_1': {
              node(env.NODE_NAME) {
                  stage 'P1' 
                      build 'Job1'
    
              }
            }, 
                 'Parallel_2': {
              node(env.NODE_NAME) {
                  stage 'P2' 
                      build 'Job2'
    
    
              }
      }
    }
    

    要获取其他环境变量的列表,请转到/pipeline syntax/globals#env。还有一种方法可以获取节点的标签。

    我想,我已经了解了如何设置间距。这很容易。在“P2”阶段之后,只需添加睡眠(60)即可。但我仍然不能确定第二点。