【发布时间】:2017-06-06 16:09:59
【问题描述】:
我有两个 Jenkins 作业,我需要并行运行它们,但间隔为 1 或 2 分钟。我的意思是,一旦“Job1”开始,然后在 1 分钟的间隙后,“Job2”应该开始。 “Job1”大约需要 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 分钟后运行?我正在寻找两件事。
- 如何在这两个并行作业之间留出空隙? (之前我在“睡眠”命令的顺序工作中得到了帮助,但同时不知道该怎么做)
- 我希望这两个作业都在同一个节点上运行。现在我在节点中使用一个名为“LINUX_TEST_BOX”的标签。这个标签里面有 4 台机器,可以选择任何机器运行。有什么办法,我可以确保两个作业在同一台机器上运行? (也许一旦 Job1 启动,我是否应该阅读它的 api 并在 Job2 中使用它。所以我需要立即创建 Job2?我不确定这一点。想知道是否有更好的方法。)
谢谢!
【问题讨论】:
-
我想,我知道了如何弥补差距。很容易。在“P2”阶段之后,只需添加 sleep(60) 即可。但我仍然不确定第 2 点。
标签: jenkins parallel-processing nodes jenkins-pipeline