Запускать задание Дженкинса каждые 2 часа в произвольную минуту в диапазоне от n до m - PullRequest
1 голос
/ 02 апреля 2019

У меня есть задание Дженкинса, которое я хочу выполнять каждые 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

Как я понял, задание выполняется каждые два часа в произвольную минуту с интервалом от 5 до 25, но минуты каждый раз одинаковы. Как заставить триггер изменять минуты каждой сборки в заданном диапазоне?

1 Ответ

0 голосов
/ 16 апреля 2019

Кажется, у 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
    }
}

Как результат, который я имею сейчасвремя выполнения этого задания:

img

PS это решение в java, но будетsimillar на других языках.

...