Cron & Scheduling

cron Jenkins · Разберите диапазон до настройки запуска

Составьте выражение Core и проверьте диапазоны H вместе с фрагментом Pipeline.

cron Jenkins

Выражение

Данные обрабатываются в этом браузере и не отправляются на сервер.

Объяснение и фрагмент Pipeline

Параметры

Конструктор полей

Эти поля — черновик. Только применение заменяет выражение сверху; проверяется именно вставленный исходный текст.

H/15 * * * *

Минута 0–59; час 0–23; день 1–31; месяц 1–12; неделя 0–7. Числовые списки, диапазоны, */шаг, диапазон/шаг или H. Отдельное число/шаг не поддерживается.

Ввод или параметры изменились. Перед экспортом обновите результаты.

cron Jenkins распределяет задания с помощью H, сохраняя стабильный выбор для одного задания. Здесь фиксированные значения показаны отдельно от возможных начальных точек: неизвестный хеш не превращается в якобы точное время.

Вставьте cron-выражение или составьте его из пяти полей. Регулярный запуск сборки задаётся через cron, проверка изменений — через pollSCM. Одно и то же расписание может запускать разные действия, поэтому тип триггера выбирается отдельно.

Зачем проверять cron Jenkins

Отделить шаг от смещения

cron Jenkins использует */15 для минут 0, 15, 30 и 45. В H/15 начало выбирается от 0 до 14, затем значения идут с шагом 15. Отчёт показывает возможное начало, а не выдаёт все кандидаты за реальные моменты запуска задания.

Две шкалы сравнивают четыре выровненные отметки и четыре равномерно смещённые отметки.

Не выйти за пределы окна

H(0-29)/10 выбирает начало от 0 до 9 и остаётся в первой половине часа. Три выбранные точки не превышают 29. Верхняя граница в отчёте помогает увидеть, что шаг не продолжается автоматически во второй половине.

Три равноудалённые отметки расположены только в выделенной первой половине временной шкалы.

Проверить черновик перед заменой исходного текста

01

Сначала открыть предпросмотр

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

02

Использовать имя как примечание

При необходимости укажите полное имя задания с папками. Оно попадёт в отчёт, но не запустит расчёт хеша. Даже точное имя не превращает возможные начальные значения в подтверждённое время этого задания.

03

Выбрать действие триггера

cron запрашивает сборки по расписанию, pollSCM проверяет изменения. Автоанализ ждёт 350 мс после правки. Отключив его, можно запускать проверку через Ctrl/Cmd + Enter. Экспорт недоступен до обновления устаревшего результата.

Условия, из которых складывается расписание

Пять числовых полей

Минута, час, день месяца, месяц и день недели поддерживают списки, включительные диапазоны и шаги для диапазона или звёздочки. Повторы удаляются; воскресенье 7 объединяется с 0 в числовом отчёте. Исходная запись выражения сохраняется.

Каждый элемент H отдельно

В H(10-20)/4 возможное начало находится между 10 и 13. Число выбранных значений зависит от начала, поэтому нельзя всегда обещать три запуска. В смешанных списках условия чисел и хешей остаются раздельными.

Раскрытие сокращений Core

Поддерживаются семь сокращений, включая @annually. По умолчанию @monthly раскрывается в H H H * *, где день тоже зависит от хеша. @midnight — это H H(0-2) * * *, а не обязательно ровно полночь.

Фрагменты для двух триггеров

Копируйте выражение отдельно или блок triggers с cron либо pollSCM. Текстовый отчёт сохраняет условия полей, тип действия и примечание о задании. Произвольное имя не вставляется в исполняемый код Groovy.

Границы проверки и прогноза времени

Без расчёта реального времени задания
Не воспроизводятся генератор Java, общее состояние хеша нескольких строк, часовой пояс контроллера и настройки администратора для хеширования сокращений. Даже при известном полном имени фактическое расписание нужно проверять в Jenkins.
Одна строка синтаксиса Core
Выражение ограничено 512 единицами UTF-16, имя — 1024. Не поддерживаются секунды, год, JAN/MON, ?, L, W, #, 5/15, заголовки TZ=, комментарии, команды и импорт целого Jenkinsfile. Буква H должна быть заглавной.
День месяца и недели объединяются через AND
Совпасть должны оба условия. Синтаксически допустимое 31 февраля не существует. Обычный H в поле дня использует 1–28; H(29-31) может выбрать отсутствующую дату. Шаги по дням не гарантируют равные интервалы на границе месяцев.
H/1 выбирает одно значение
H/1 работает как H; для всех значений нужен */1. Шаг хеша больше 1 должен помещаться в диапазон. Разные задания всё равно могут совпасть по времени. Страница не подключается к Jenkins, не создаёт заданий и не запускает сборок.

Вопросы о cron Jenkins

Что означает H/5?

В поле минут выбирается стабильное начало от 0 до 4, затем значения идут с шагом пять в пределах часа. H/5 3,21 * * 1-5 применяет этот шаблон по будням в часы 3 и 21. Это не один запуск в течение пяти минут.

Как настроить регулярный запуск несколько раз в час?

Для 2-й, 4-й и 6-й минут подойдёт 2,4,6 * * * *. Укажите выражение в Build periodically или используйте сгенерированный блок triggers в декларативном Pipeline. При выборе cron изменения исходного кода для запуска не требуются.

Можно ли использовать разные часовые пояса?

Полная конфигурация триггера Core допускает строку TZ= с идентификатором, доступным в Java. Без неё используется пояс контроллера. Этот инструмент принимает одно выражение без заголовка и не рассчитывает время по часовому поясу браузера.

Чем Poll SCM отличается от Build periodically?

Poll SCM опрашивает репозиторий и запрашивает сборку при обнаружении изменений. Периодическая сборка от изменений не зависит. Выберите pollSCM для фрагмента опроса и проверьте в Jenkins особенности настроенного репозитория.

Как запускать задание в последний день месяца?

В Core нет селектора L для конца месяца. Можно отдельно организовать ежедневный запуск с проверкой даты в задании или использовать подходящий плагин таймера. @monthly по умолчанию выбирает день от 1 до 28 и не означает последний день.

Неожиданная дата запуска?

Проверить расписание на контроллере

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

Правильный синтаксис не гарантирует начало или успешное завершение сборки.