Я новичок в Дженкинс. У меня есть работа, которую мне нужно планировать каждые 1 час.
Я использую
* */1 * * *
но это не работает эффективно.
Пожалуйста, предоставьте любое другое решение.
@hourly
или0 * * * *
Я новичок в Дженкинс. У меня есть работа, которую мне нужно планировать каждые 1 час.
Я использую
* */1 * * *
но это не работает эффективно.
Пожалуйста, предоставьте любое другое решение.
@hourly
или0 * * * *
Ответы:
Дженкинс использует выражение cron, как описано здесь
Чтобы планировать каждый час, то вы можете поставить
0 * * * *
Тогда ваша работа будет выполняться каждый час (07:00, 08:00, 09:00 и т. Д.)
ОБНОВИТЬ
Как объяснение вашей исходной конфигурации, синтаксис
* */1 * * *
будет выполнять работу каждые минуты.
ОБНОВЛЕНИЕ 2
Как и просили в комментарии, здесь синтаксис для расписания это каждые 3 часа
0 */3 * * *
Синтаксис */n
означает, что задания будут планироваться каждый n
час
Дженкинс предлагает так:
H * * * *
H
вместо жестко закодированных значений
Я знаю, что это старая ветка, но я отвечаю, потому что, очевидно, люди все еще приземляются здесь.
Верхний ответ больше не должен использоваться.
Дженкинс ввел значение 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 * * *
правильно, он работает каждый час
Попробуйте использовать функцию H, чтобы все задания не опрашивали одновременно SVN
H H/1 * * *
Это должно сделать магию. Если задание занимает больше времени или вы выполняете функциональность триггера сборки. Либо увеличьте время, либо используйте плагин jenkins, чтобы остановить сборку до завершения предыдущей сборки.
https://wiki.jenkins-ci.org/display/JENKINS/Build+Blocker+Plugin
* * * * *
=> запускать каждую минуту. Для бега между определенным диапазоном вы используете его как * 1-2 * * *
<- он работает каждую минуту с 1:00 до 1:59
* * 1-2 * *
?
* 1-2 * * *
. Первая позиция предназначена для Minute of our
, вторая - для hour of day
третьего day of month
, четвертого month of year
и пятого day of week
(в особых случаях также допускается шестая позиция year
). Таким образом, ваша строка * * 1-2 * *
переводится как «Каждую минуту, Каждый час, первый и второй день каждого месяца и любой день недели.
*
переводится в every
то время как H
переводится в any
. Так что время * * * * *
означает каждую минуту, H * * * *
означает сборку один раз в час, но мне не важна точная минута (может быть где-то между 0-59, если не определен диапазон) и H H * * *
означает сборку один раз в день, но мне все равно, в какое время.
Синтаксис:
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 * * * *