我有一个 jenkins 作业,我想每 2 小时随机执行一次,范围从 n 到 m。
例如:
n = 5
m = 25
预计时间表:
Mar 29, 2019 2:07 PM
Mar 29, 2019 4:17 PM
Mar 29, 2019 6:13 PM
Mar 29, 2019 8:22 PM
...
我尝试过以下操作:
H(5-25) H/2 * * *
每 2 小时 8 分钟运行一次
据我了解,该作业每两个小时运行一次,间隔时间为 5 到 25 之间的随机分钟,但每次的分钟都是相同的。如何强制触发器更改给定范围内每个构建的分钟?
最佳答案
好像Jenkins还没有这样的功能。我能够通过添加一个新的 RandomWait
作业和一个测试来解决这个问题,该作业仅等待随机时间。然后这个作业每 2 小时 0 分钟运行一次,执行后触发我的“主要”作业。
RandomJob
测试中的示例代码:
public void waitRandomTime() {
int max = 31;
System.out.println("Peeking a random number in a range between 0 and " + (max - 1));
int minute = new Random().nextInt(max);
System.out.println("Start waiting " + minute + " minutes");
for (int i = 0; i < minute; i++) {
System.out.println("Minute: " + i);
waitABit(60000); // wait one minute
}
}
结果我现在有这个作业的执行时间:
PS此解决方案采用 Java 语言,但在其他语言中也类似。
关于java - 每 2 小时在 n 到 m 范围内的随机分钟触发一次 Jenkins 作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55467823/