每2小时随机触发一次Jenkins工作,范围从n到m

时间:2019-04-02 05:56:07

标签: java jenkins continuous-integration scheduled-tasks

我有一个詹金斯(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分钟运行一次

img

据我了解,这项工作每隔2个小时每隔5到25之间的随机分钟运行一次,但每分钟都相同。如何强制触发器在给定范围内更改每次构建的分钟数?

1 个答案:

答案 0 :(得分:0)

似乎Jenkins还没有此功能。我能够通过一次测试添加一个新的RandomWait作业来解决此问题,该作业仅等待随机时间。然后,此作业在0分钟每2小时运行一次,执行后触发了我的“主要”作业。

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
    }
}

结果,我现在有此作业执行时间:

img

PS 此解决方案以java的形式提供,但将以其他语言类似。