Спасибо за ответ. Работает нормально. Но моя работа занимает больше часа, чтобы выполнить. Например, если я хочу запланировать эту работу на каждые 3 часа, какой будет синтаксис. Пожалуйста, поделитесь.
Ajay
Проверьте мой обновленный ответ :)
masegaloeh
@Ajay Если этот ответ работает для вашей проблемы, пожалуйста, примите этот ответ :)
Тот же ответ, что и у других ответов на вопрос 1+ лет.
JakeGould
Это дублирует другой ответ и не добавляет новый контент. Пожалуйста, не публикуйте ответ, если у вас нет чего-то нового.
DavidPostill
4
Преимущество этого подхода в том, что Дженкинс будет управлять задачами в очереди. Может быть, у кого-то еще был ответ, но он все еще полезен. Зачем быть таким резким, если это полезно? ответ с 20 лайками НЕ так хорош .... ба
хуан Исаза
Я должен идти с @juanIsaza. Это не дубликат, а лучший ответ. Дженкинс однозначно предлагает предпочесть использование Hвместо жестко закодированных значений
derHugo
9
Я знаю, что это старая ветка, но я отвечаю, потому что, очевидно, люди все еще приземляются здесь.
Это поле соответствует синтаксису 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, чтобы все задания не опрашивали одновременно SVN
H H/1 * * *
Это должно сделать магию. Если задание занимает больше времени или вы выполняете функциональность триггера сборки. Либо увеличьте время, либо используйте плагин jenkins, чтобы остановить сборку до завершения предыдущей сборки.
Первый работает каждую минуту с 1:00 до 2:00, верно?
Эрик Ван
@EricWang: Нет. Это то же самое, что и * * * * *=> запускать каждую минуту. Для бега между определенным диапазоном вы используете его как * 1-2 * * *<- он работает каждую минуту с 1:00 до 1:59
derHugo
@derHugo Ты имеешь в виду * * 1-2 * *?
Эрик Ван
1
@EricWang Нет, я имею в виду * 1-2 * * *. Первая позиция предназначена для Minute of our, вторая - для hour of dayтретьего day of month, четвертого month of yearи пятого day of week(в особых случаях также допускается шестая позиция year). Таким образом, ваша строка * * 1-2 * *переводится как «Каждую минуту, Каждый час, первый и второй день каждого месяца и любой день недели.
derHugo
1
Разница, которую пропустил автор этого ответа, заключается в том, что *переводится в everyто время как Hпереводится в any. Так что время * * * * *означает каждую минуту, H * * * *означает сборку один раз в час, но мне не важна точная минута (может быть где-то между 0-59, если не определен диапазон) и H H * * *означает сборку один раз в день, но мне все равно, в какое время.
derHugo
-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 часа, синтаксис должен выглядеть так:
@hourly
или0 * * * *
Ответы:
Дженкинс использует выражение cron, как описано здесь
Чтобы планировать каждый час, то вы можете поставить
Тогда ваша работа будет выполняться каждый час (07:00, 08:00, 09:00 и т. Д.)
ОБНОВИТЬ
Как объяснение вашей исходной конфигурации, синтаксис
будет выполнять работу каждые минуты.
ОБНОВЛЕНИЕ 2
Как и просили в комментарии, здесь синтаксис для расписания это каждые 3 часа
Синтаксис
*/n
означает, что задания будут планироваться каждыйn
часисточник
Дженкинс предлагает так:
источник
H
вместо жестко закодированных значенийЯ знаю, что это старая ветка, но я отвечаю, потому что, очевидно, люди все еще приземляются здесь.
Верхний ответ больше не должен использоваться.
Дженкинс ввел значение
H
.Таким образом, правильный ответ для построения один раз в час
за каждые 3 часа
Разницу между
*
иH
можно также объяснить*
переводит на КАЖДОГОH
переводит на ЛЮБОЙТак, например,
переводится как: Построить каждую минуту, каждый час, каждый день месяца, каждый месяц, независимо от того, какой это день недели.
переводится как: Построить один раз в час (x), независимо от того, какая это точная минута (может быть в любую минуту между x: 00 и x: 59)
переводится как: Построить один раз в день, независимо от того, сколько времени (может быть в любую минуту и в любой час между 00:00 и 23:59)
Причина, почему вы предпочитаете использовать
H
вместо жестко закодированных значений времени, также объясняется как раньшеЕсли у вас есть 100 заданий, настроенных с
все они будут пытаться начать одновременно, вызывая, например, много опроса и трафика в полночь.
Если у вас есть вместо них все настроено с
все они будут создаваться один раз в день, но не все одновременно, а распределяться в течение дня.
График времени
Вы можете лучше планировать график, используя временные диапазоны, например:
Все рабочие места будут создаваться каждый день в любое время с 18:00 до 23:59.
График времени пересечения диапазона полуночи
Можно даже запланировать работы, пересекающие полночь, например, строить с 19:00 до 5:00.
Но так как cron обычно не позволяет этого, вы можете использовать трюк с использованием часового пояса шифтета.
Например, я живу в часовом поясе MEZ, который GMT + 1, и я хочу построить все рабочие места с 19:00 до 5:00. Для этого я сдвигаю свой часовой пояс на 5 часов, используя
Чем я использую диапазон сдвига для часов, начиная с 14:00 (-> +5 = 19:00 вечера) и заканчивая в 23:59 (-> +5 = 4:59 утра)
источник
правильно, он работает каждый час
Попробуйте использовать функцию H, чтобы все задания не опрашивали одновременно SVN
Это должно сделать магию. Если задание занимает больше времени или вы выполняете функциональность триггера сборки. Либо увеличьте время, либо используйте плагин 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 * * *
означает сборку один раз в день, но мне все равно, в какое время.Синтаксис:
Если вы хотите запланировать каждые 3 часа, синтаксис должен выглядеть так:
источник