Инструменты разработчика · Генератор Crontab
Чтение выражения cron вслух: как */5 9-17 * * 1-5 становится словами
· Как это работает
хрон проверка кода рабочий процесс разработчика
Перевод выражения на английский язык — это механический процесс, если вы знаете порядок. В этом посте представлен алгоритм чтения, применен его к сложным примерам и показано, как объяснение генератора помогает вам проверить.
Кронтаб в файле различий, который вы не можете просмотреть — пять полей с шагами и диапазонами и никаких комментариев, объясняющих их.
Выражение из пяти токенов в запросе на включение — это исполняемая политика, сжатая в знаки препинания. Рецензенты, которые узнают форму, но не могут произнести график вслух, скорее всего, упустят инклюзивную конечную точку, неуместный шаг или особую связь между двумя полями дней. Таким образом, перевод — это проверка правильности, а не косметическая документация.
ToolAcre получает свое предложение из анализируемого объекта, используемого предупреждениями и предварительным просмотром. Вставьте только пять полей, оставив команду и секреты снаружи. Если сгенерированная формулировка отличается от комментария автора, приостановите проверку и определите намерение, прежде чем выражение будет где-либо установлено.
Сначала прочитайте поля дня: день недели и месяц сообщат вам, какие дни, затем минуты и часы расскажут вам, когда.
Объем календаря проще всего определить до детализации часов. Месяц и день недели показывают, какие части года или недели подходят; день месяца может добавить еще одно календарное условие; час и минута, а затем размещение прогонов в пределах соответствующих дат. Этот порядок чтения предназначен для просмотра человеком, в то время как сохраненный позиционный порядок выражения остается первым.
Всегда спрашивайте, ограничены ли оба поля дня. Если да, то ToolAcre объединяет их с помощью «или» и выдает предупреждение. Случайное чтение их как соседних фильтров AND меняет расписание. Подстановочный знак в одном поле дня устраняет эту двусмысленность и позволяет другому полю действовать как единственное ограничение дня.
Перевод каждого токена — * как «каждый», число как «в», диапазон как «от–до», шаг как «каждый N, начиная с»
Звездочка означает каждое разрешенное значение в этой позиции. Число выбирает одно значение. Дефис включает в себя все значения между его конечными точками. Запятые объединяют элементы, а косая черта выбирает каждое n-е значение от начала подстановочного знака, диапазона или начального значения. Собственный минимум поля определяет, где начинается шаг подстановочного знака.
Имена месяцев и дней недели принимаются независимо от регистра, включая такие диапазоны, как `JAN-MAR` и `MON-FRI`. Воскресенье может быть записано как 0 или 7 и нормализуется как 0. Код описания преобразует смежные развернутые значения в «сквозную» формулировку, а несмежные значения — в читаемый список.
Рабочий пример: инструмент описывает выбранные часы, а расширенные значения минут определяют окончательный запуск.
`*/5 9-17 * * 1-5` выбирает минутные значения от 0 до 55 с шагом по пять, часы от 9 до 17 и дни недели с понедельника по пятницу. Инструмент описывает минутный шаг в выбранном интервале часов. Расширение значений показывает, что последним кандидатом во включенный час 17 является 17:55.
Этот последний кандидат часто упускается из виду, когда «9-17» перефразируется как граница рабочего дня. Cron выбирает полные значения часов, а затем объединяет их со всеми выбранными минутами. Если намерение заканчивается на 17:00, выражение нельзя считать правильным только потому, что слова «с девяти до пяти» звучат знакомо.
Рабочий пример: 0 0 1,15 * 3 — чтение правила ИЛИ поля дня вслух, чтобы его не пропустить
Теперь прочитайте `0 0 1,15 * 3`. Выбирается полночь, день месяца — первое или пятнадцатое, день недели — среда. Поскольку оба поля дня ограничены, календарное условие — первое или пятнадцатое число каждого месяца ИЛИ каждую среду. Это не «среда, когда дата 1 или 15».
В предупреждении ToolAcre этот союз выделяется, а в его описании вставляется слово «или». Предварительный просмотр следующего запуска показывает конкретные даты для выбранной зоны. Просмотрите все три результата, поскольку беглое предложение само по себе может все еще скрывать, что основным требованием было пересечение, которое диалект не может выразить напрямую.
Сохраняйте комментарий о намерении только после проверки его на соответствие выражению.
Комментарий над выражением может сохранить намерение, но он также может сохранить старую ложь после изменения полей. Сгенерируйте или вручную восстановите предложение из текущих токенов во время просмотра. Если в результате редактирования `0` меняется на `*/5`, обновите комментарий только после подтверждения расширенного набора минут и окончательного запуска.
Предпочитайте комментарий, в котором указывается предполагаемая зона настенных часов, а также частота. Выражение не содержит поля часового пояса, а предварительный просмотр ToolAcre предлагает рецензенту выбрать его. Это примечание помогает другому человеку воспроизвести тот же список, не подразумевая, что выбор браузера настраивает окончательный планировщик.
Шести- и семиполевые грамматики отвергаются, не переводятся.
Парсеру требуется ровно пять полей. Ввод из шести полей получает конкретное объяснение стиля ведущих секунд; более длинные формы не интерпретируются. ToolAcre также не имеет поля года. Поэтому алгоритм простого английского языка в этой статье применим только к пятиполевой грамматике репозитория.
Не удаляйте поле из Quartz, Spring или другого продукта до тех пор, пока не будет проверен оставшийся текст. Неподдерживаемые операторы могут иметь важное значение. Для перевода требуется документация для обеих систем, в то время как этот генератор предоставляет доказательства только для своих собственных принятых значений, имен, диапазонов, списков, шагов, подстановочных знаков и псевдонимов.
Вывод: у каждого выражения есть предложение — и генератор Crontab создает это предложение, чтобы вы могли сравнить его с намерением.
Каждое поддерживаемое выражение можно расширить до конечных значений полей и календарного предложения. Чтение этих ценностей выявляет кандидатов, которых упускают из виду неформальные фразы. Это также приводит к включению в диалог правила OR поля дня до того, как расписание достигнет рабочего узла.
Для проверки вставьте выражение, сравните сгенерированное описание с указанным требованием, просмотрите предупреждения и выберите время предстоящих событий. Оставьте полученный комментарий рядом со строкой, но рассматривайте проанализированное выражение как исполняемый источник. Генератор объясняет намерение расписания; он не подтверждает команду и не устанавливает ее.