Введение
В мире автоматизации не все процессы запускаются мгновенно по событию (Webhook). Огромный пласт задач требует выполнения по строгому расписанию: отправить ежедневный отчет в 09:00, сделать бекап базы данных каждое воскресенье в 02:00 ночи или проверять почту каждые 15 минут. Для решения этих задач в Linux-системах еще в 1970-х годах была придумана утилита cron, и её синтаксис актуален до сих пор.
Платформа n8n использует классические cron-выражения в узле Schedule Trigger. Да, в последних версиях n8n добавился удобный визуальный интерфейс ("запускать каждый день в..."), но для создания сложных гибких расписаний знания чистого cron-синтаксиса остаются незаменимыми. В этой статье мы научимся "читать" cron-выражения как обычный текст и приведем готовые шаблоны для ваших сценариев.
Анатомия Cron-выражения
Стандартное cron-выражение состоит из пяти обязательных полей (иногда шести, если поддерживаются секунды, но в n8n по умолчанию используется 5 полей для минут, часов, дней и т.д.). Поля разделяются пробелами.
* * * * *
| | | | |
| | | | +---- День недели (0 - 6) (Вс = 0 или 7)
| | | +------ Месяц (1 - 12)
| | +-------- День месяца (1 - 31)
| +---------- Час (0 - 23)
+------------ Минута (0 - 59)
Спецсимволы, которые делают магию:
*(Звездочка) — означает "каждый" (каждая минута, каждый час).,(Запятая) — перечисление. Например,1,15,30в поле минут означает запуск в 1, 15 и 30 минут.-(Дефис) — диапазон. Например,1-5в поле дней недели означает запуск с понедельника по пятницу./(Слеш) — шаг. Например,*/10в поле минут означает запуск каждые 10 минут.
Топ-10 готовых Cron-выражений для n8n
Хватит теории, давайте перейдем к практике. Эти расписания покрывают 90% потребностей бизнеса:
1. Запуск сценария каждый час (ровно в 00 минут)
Выражение: 0 * * * *
Зачем нужно: Идеально для обновления статусов заказов или агрегации метрик за прошедший час.
2. Запуск каждые 15 минут
Выражение: */15 * * * *
Зачем нужно: Проверка новых писем в ящике технической поддержки (через IMAP), чтобы клиенты не ждали ответа слишком долго.
3. Каждое утро в 09:00
Выражение: 0 9 * * *
Зачем нужно: Отправка утренней сводки (Daily Report) с показателями продаж директору в Telegram или Slack.
4. В 18:30 по будням (с понедельника по пятницу)
Выражение: 30 18 * * 1-5
Зачем нужно: Автоматическое выключение тестовых серверов в облаке по завершении рабочего дня для экономии денег.
5. Каждую полночь (00:00)
Выражение: 0 0 * * *
Зачем нужно: Очистка временных таблиц базы данных или обнуление суточных счетчиков посещаемости.
6. В 02:00 ночи каждую субботу и воскресенье
Выражение: 0 2 * * 6,0 (напоминаю: 0 — это воскресенье)
Зачем нужно: Запуск тяжелых сценариев синхронизации каталогов (ERP <-> Сайт), когда нагрузка на сервера минимальна.
7. 1-го числа каждого месяца в 08:00
Выражение: 0 8 1 * *
Зачем нужно: Автоматическая генерация и рассылка бухгалтерских актов и счетов (Invoices) клиентам за прошедший месяц.
8. В 14:00 только по рабочим дням
Выражение: 0 14 * * 1-5
Зачем нужно: Напоминание менеджерам о необходимости закрыть "зависшие" сделки перед концом дня.
9. В рабочее время каждый час (с 09:00 до 18:00) с Пн по Пт
Выражение: 0 9-18 * * 1-5
Зачем нужно: Активный мониторинг работоспособности сайта (Ping) только тогда, когда команда поддержки на рабочем месте.
10. Каждые 5 минут в определенное окно (с 10:00 до 10:55)
Выражение: */5 10 * * *
Зачем нужно: Интенсивный парсинг данных (например, билетов на самолет или курсов валют) перед важным утренним митингом.
Частые ошибки при настройке Cron в n8n
Ошибка 1: Часовые пояса (Timezones). n8n берет часовой пояс из глобальных настроек
(переменная окружения GENERIC_TIMEZONE). Если вы не задали эту переменную при установке, n8n
будет работать по UTC (Гринвичу). В итоге ваш сценарий, настроенный на 09:00 утра, запустится в 12:00 по
Москве.
Решение: Всегда явно указывайте свой часовой пояс в docker-compose, например:
GENERIC_TIMEZONE=Europe/Moscow.
Ошибка 2: Пропуск минут. Очень часто новички пишут * 9 * * * желая запустить
процесс в 9 утра. Ошибка! Звездочка на первой позиции означает "каждую минуту". Этот скрипт будет
запускаться каждую минуту с 09:00 до 09:59 (60 раз подряд!). Правильно: 0 9 * * *.
Заключение
Синтаксис Cron может показаться недружелюбным с первого взгляда, но это универсальный стандарт де-факто в IT-индустрии на протяжении десятилетий. Узел Schedule Trigger в n8n позволяет совместить надежность этого старого механизма с мощью современной автоматизации API. Запомните приведенные выше шаблоны, и вы сможете запрограммировать любое, даже самое сложное расписание бизнес-процессов.