Руководство

Как проверить cron-выражение и узнать следующие запуски

Введите пятиполевое cron-выражение и запустите расчёт, чтобы получить пять ближайших запусков от текущего времени UTC. Корректный синтаксис не гарантирует успех, если следующее совпадение не найдено в пределах десяти лет.

Инструмент Парсер выражений cron

Что можно проверить в расписании

Cron-выражение описывает повторяющееся расписание с помощью пяти полей: минуты, часа, дня месяца, месяца и дня недели. Инструмент проверяет такую запись и, если расчёт завершается успешно, возвращает пять ближайших запусков относительно текущего времени UTC. Это полезно, когда нужно быстро разобрать расписание, проверить ожидаемые календарные даты или обнаружить ошибку в сочетании ограничений.

Если выражение не введено, используется */5 * * * *, то есть расписание срабатываний каждые пять минут. Перед проверкой последовательности пробелов заменяются одиночными пробелами, а пробелы в начале и конце удаляются. Поэтому лишние пробелы вокруг записи или между её частями не меняют смысл расписания после такой нормализации.

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

Порядок проверки пяти полей

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

  2. Вставьте выражение в поле инструмента. Чтобы проверить вариант по умолчанию, оставьте поле без записи: будет использовано */5 * * * *. Вручную исправлять пробелы в начале, конце или между частями не обязательно, потому что перед проверкой они приводятся к единому виду.

  3. Запустите расчёт и сначала проверьте число полей. Допустимы ровно пять частей, разделённых пробелами. Если частей меньше или больше, проверка завершается неуспешно до вычисления дат. Ошибка синтаксиса cron, даты, значения или ключа также приводит к неуспешному результату вместо списка запусков.

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

  5. Отдельно проверьте совместное действие календарных ограничений. Когда в записи заданы и день месяца, и день недели, подходящей считается дата, соответствующая одному из этих условий. Такое правило «или» способно дать больше дат, чем предположение о необходимости одновременного совпадения обоих условий.

Как трактовать список и отказ

Успешный результат содержит пять ближайших календарных срабатываний в виде строк даты и времени в формате ISO с указанием UTC. По этому списку можно оценить не только допустимость записи, но и фактическую последовательность дат. Для 0 0 1 * * форма результата должна включать пять полуночных отметок, каждая из которых приходится на первое число соответствующего месяца. Конкретный набор дат определяется моментом начала расчёта.

Неуспешный результат означает, что успешное расписание не было возвращено. Возможная причина связана с синтаксисом cron, разбором даты, значения или ключа; другой вариант возникает, когда подходящая дата не найдена в установленном интервале поиска. Поэтому синтаксически корректная запись тоже может завершиться без списка, если следующее совпадение не обнаружено за десять лет.

Ограничение в десять лет особенно заметно для редких комбинаций календарных условий. Если расписание должно повторяться реже, сопоставьте запись с правилами того планировщика, для которого она предназначена, и проверьте её в подходящей системе отдельно. Не переносите показанное UTC-время в местный календарь без поправки на часовой пояс. Также не считайте пятиполевую запись подтверждением совместимости с шестью полями или с расширениями конкретного диалекта.

Практический пример

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

Введите 0 0 1 * * и запустите расчёт, затем сопоставьте пять полученных отметок с первыми числами следующих подходящих месяцев и проверьте обозначение UTC в каждой строке результата.

Пять ISO-строк даты и времени с указанием UTC, каждая соответствует полуночи первого числа месяца в рассчитанной последовательности дат от текущего времени UTC.

Ограничения

  • Проверка пяти полей не подтверждает поддержку шестиполевых или нестандартных диалектов cron. Синтаксически корректная запись тоже может завершиться неуспешно, если совпадение не найдено в пределах десяти лет.

Частые ошибки

  • Причина неуспеха может быть в четырёх, шести или неправильно упорядоченных полях. Оставьте ровно пять частей и проверьте порядок: минута, час, день месяца, месяц, день недели.

Частые вопросы

Какое расписание используется без введённого выражения?

При пустом поле применяется */5 * * * *, поэтому расписание рассчитано на срабатывание каждые пять минут. Для другого сценария укажите собственную запись из пяти полей и запустите расчёт заново, чтобы получить её ближайшие даты.

В каком часовом поясе показываются следующие запуски?

Начало расчёта привязано к текущему времени UTC, причём дробная часть секунды удаляется. Если вы сопоставляете список с местным временем, отдельно примените нужную поправку часового пояса и не смешивайте две шкалы времени.

Почему результат может отличаться от ожидаемого или не появиться?

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

Инструмент

Парсер выражений cron