15

Я новичок в Дженкинс. У меня есть работа, которую мне нужно планировать каждые 1 час.

я использую

* */1 * * * 

но это не работает эффективно.

Пожалуйста, предоставьте любое другое решение.

5 ответов5

29

Дженкинс использует выражение cron, как описано здесь

Чтобы планировать каждый час, то вы можете поставить

0 * * * *

Тогда ваша работа будет выполняться каждый час (07:00, 08:00, 09:00 и т.д.)

ОБНОВИТЬ

Как объяснение вашей исходной конфигурации, синтаксис

* */1 * * *

будет выполнять работу каждые минуты.

ОБНОВЛЕНИЕ 2

Как и просили в комментарии, здесь синтаксис для расписания это каждые 3 часа

0 */3 * * *

Синтаксис */n означает, что задания будут планироваться каждые n часов.

12

Дженкинс предлагает так:

H * * * *
7

Я знаю, что это старая ветка, но я отвечаю, потому что, очевидно, люди все еще приземляются здесь.

Верхний ответ больше не должен использоваться.

Дженкинс ввел значение H

Это поле соответствует синтаксису cron (с небольшими отличиями). В частности, каждая строка состоит из 5 полей, разделенных табуляцией или пробелом:

МИНУТА ЧАСОВ ОТ МЕСЯЦА ДОУ

  • МИНУТА Минуты в течение часа (0–59)
  • ЧАС Часы дня (0–23)
  • DOM день месяца (1–31)
  • МЕСЯЦ Месяц (1–12)
  • DOW День недели (0–7), где 0 и 7 - воскресенье.

Чтобы указать несколько значений для одного поля, доступны следующие операторы. В порядке приоритета,

  • * указывает все допустимые значения
  • M-N указывает диапазон значений
  • M-N/X или */X шаг за шагом X через указанный диапазон или весь допустимый диапазон
  • A,B,...,Z перечисляет несколько значений

Чтобы периодически запланированные задачи создавали равномерную нагрузку на систему, везде, где это возможно, следует использовать символ H (для «хэша»). Например, использование 0 0 * * * для дюжины ежедневных заданий вызовет большой всплеск в полночь. Напротив, использование HH * * * будет по-прежнему выполнять каждую работу один раз в день, но не все одновременно, лучше при использовании ограниченных ресурсов.

Символ H может использоваться с диапазоном. Например, ЧЧ (0-7) * * * означает некоторое время с 12:00 (полночь) до 7:59. Вы также можете использовать интервалы шага с H, с или без диапазонов.

Символ H можно рассматривать как случайное значение в диапазоне, но на самом деле это хеш имени задания, а не случайная функция, так что значение остается стабильным для любого данного проекта.

Помните, что для поля дня месяца короткие циклы, такие как */3 или H/3, не будут работать согласованно ближе к концу большинства месяцев из-за переменной длины месяца. Например, */3 будет выполняться 1-го, 4-го,… 31-го дня длинного месяца, а затем снова на следующий день следующего месяца. Хэши всегда выбираются в диапазоне 1-28, поэтому H/3 будет давать разрыв между циклами от 3 до 6 дней в конце месяца. (Более длинные циклы также будут иметь непоследовательную длину, но эффект может быть относительно менее заметным.)

Таким образом, правильный ответ для построения один раз в час

H * * * *

за каждые 3 часа

H H/3 * * *

Разница между * и H может быть объяснена как

  • * переводится на КАЖДОГО
  • H переводит на ЛЮБОЙ

Так, например,

* * * * *

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

H * * * *

переводится как: Построить один раз в час (x), независимо от того, какая это точная минута (может быть в любую минуту между x: 00 и x: 59)

H H * * *

переводится как: Построить один раз в день, независимо от того, сколько времени (может быть в любую минуту и в любой час между 00:00 и 23:59)


Причина, по которой вы предпочитаете использовать H вместо жестко закодированных значений времени, также объясняется как ранее.

Если у вас есть 100 заданий, настроенных с

0 0 * * *

все они будут пытаться начать одновременно, вызывая, например, много опроса и трафика в полночь.

Если они у вас есть, вместо этого все настроено с

H H * * *

все они будут создаваться один раз в день, но не все одновременно, а распределяться в течение дня.


График времени

Вы можете лучше планировать график, используя временные диапазоны, например:

H H(18-23) * * *

Все рабочие места будут создаваться каждый день в любое время с 18:00 до 23:59.


График времени пересечения диапазона полуночи

Можно также запланировать работу на ночь, например, с 19:00 до 5:00.

Но так как cron обычно не позволяет этого, вы можете использовать трюк с использованием часового пояса шифтета.

Например, я живу в часовом поясе MEZ, который GMT+1, и я хочу построить все рабочие места с 19:00 до 5:00. Чтобы сделать это, я сдвигаю свой полный часовой пояс на 5 часов, используя

TZ=Etc/GMT+6

Чем я использую диапазон сдвига для часов, начиная с 14:00 (-> +5 = 19:00 вечера) и заканчивая в 23:59 (-> +5 = 4:59 утра)

H H(14-23) * * *
-1
* */1 * * *

правильно, это работает каждый час

Попробуйте использовать функцию H, чтобы все задания не опрашивали одновременно SVN

H H/1 * * *

Это должно сделать магию. Если задание занимает больше времени или вы выполняете функцию триггера сборки. Либо увеличьте время, либо используйте плагин jenkins, чтобы остановить сборку до завершения предыдущей сборки.

https://wiki.jenkins-ci.org/display/JENKINS/Build+Blocker+Plugin

-5

Синтаксис:


MINUTE  Minutes within the hour (0-59)
HOUR    The hour of the day (0-23)
DOM     The day of the month (1-31)
MONTH   The month (1-12)
DOW     The day of the week (0-7) where 0 and 7 are Sunday.

Если вы хотите запланировать каждые 3 часа, синтаксис должен выглядеть так:

* 3 * * * *

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .