Без корректно настроенного cron в Битрикс перестают работать агенты: не уходят письма, не обновляются цены из 1С, не удаляются просроченные корзины. На Битрикс-проектах типичная проблема — режим агентов «через хиты» (запуск при каждом запросе пользователя). Это создаёт непредсказуемые задержки: тяжёлые задачи (пересчёт цен, отправка рассылок) выполняются только когда есть трафик, а ночью сайт «спит». Мы сталкивались с проектами, где письма об оплате уходили с опозданием до 4 часов, а очередь почтовых сообщений в b_event накапливалась до 5000 писем. На фоне этого снижалась конверсия — клиенты не получали уведомления о статусе заказа. Единственное правильное решение — перевести агенты на системный cron. В этой статье разберём, как настроить cron для продакшена, избежать типовых ошибок и сократить задержки до 1-2 минут.
Режимы запуска агентов: хиты vs cron
Битрикс поддерживает два режима — через хиты и через cron. Переключение: Настройки → Настройки продукта → Агенты.
Режим хитов (по умолчанию): агенты запускаются при обычных запросах к сайту. Минус — задержка выполнения зависит от посещаемости. Ночью, когда нужно запустить индексацию или отправить рассылку, хитов может не быть совсем. В результате агенты накапливаются, и страницы начинают тормозить.
Режим cron: агенты выполняются системным планировщиком независимо от трафика. Это единственный правильный вариант для продакшена: агенты отрабатывают строго по расписанию, без влияния на пользовательский опыт.
Какой режим надёжнее?
| Характеристика | Режим хитов | Режим cron |
|---|---|---|
| Зависимость от трафика | Полная | Нет |
| Точность выполнения | Низкая (до нескольких часов задержки) | Высокая (в пределах интервала запуска) |
| Нагрузка на сервер | Пиковая при массовых запусках | Равномерная |
| Риск пропуска агентов | Высокий при отсутствии хитов | Минимальный |
| Рекомендация | Только для разработки | Для продакшена |
Режим cron в 10 раз надёжнее режима хитов по точности выполнения агентов. Экономия времени на ручном запуске агентов экономит бюджет на администрирование.
Настройка cron: пошаговая инструкция
- Переключите режим агентов в админке на «cron».
- Определите пользователя веб-сервера (обычно www-data или bitrix).
- Добавьте задачу в crontab этого пользователя:
*/5 * * * * /usr/bin/php -f /var/www/html/bitrix/modules/main/tools/cron_events.php >> /var/log/bitrix_cron.log 2>&1
Интервал запуска — от 1 до 5 минут. Чаще не нужно: у большинства агентов минимальный период — 1 минута, и более частый запуск ничего не даст.
Путь к PHP должен совпадать с тем, который использует веб-сервер. Проверить: which php или php -v. Если на сервере несколько версий PHP — указывайте полный путь, например /usr/bin/php8.1.
- Убедитесь, что файл лога создаётся и не пустой:
tail -f /var/log/bitrix_cron.log.
Дополнительные задачи cron
Если используется модуль Поиск или Веб-аналитика, добавьте отдельные задачи:
0 3 * * * /usr/bin/php -f /var/www/html/bitrix/modules/search/lib/crawler.php
0 2 * * * /usr/bin/php -f /var/www/html/bitrix/modules/statistic/tools/update_daily_counter.php
Для сайтов на Битрикс: Управление сайтом с модулем sale — отдельно запускайте обработку заказов:
*/10 * * * * /usr/bin/php -f /var/www/html/bitrix/modules/sale/lib/internals/agent.php
Пример типовых задач:
| Задача | Команда | Периодичность |
|---|---|---|
| Основные агенты | cron_events.php | 2–5 минут |
| Поисковый краулер | crawler.php | Раз в сутки |
| Обработка заказов | sale/lib/internals/agent.php | 10 минут |
| Отправка почтовых уведомлений | Через основной агент | 1–2 минуты |
Почему cron важен для интернет-магазина?
Интернет-магазины зависят от своевременной обработки заказов, обновления остатков и отправки уведомлений. Если агенты выполняются с задержкой, клиенты не получают письма об оплате, а менеджеры — уведомления о новых заказах. Мы сталкивались с проектом, где из-за хитов письма уходили с опозданием на 4 часа. После настройки cron задержка сократилась до 1–2 минут.
Пример из практики
Интернет-магазин на редакции Малый бизнес, хостинг на виртуальном сервере. Жалоба: письма об оплате уходят с опозданием на 2–4 часа, иногда не уходят совсем. Диагностика: агенты работали в режиме хитов, ночью трафика нет. Почтовая очередь в b_event накапливалась, модуль main не запускался. Решение: переключение на cron с интервалом 2 минуты, добавление задачи обработки почтовой очереди. После — письма уходят в течение 2 минут после события.
Как проверить, работает ли cron?
Проверить, когда последний раз выполнялись агенты: таблица b_agent в БД, поле LAST_EXEC. Если значение не обновляется — cron не работает.
В административном интерфейсе: Настройки → Производительность → Агенты. Видно время последнего запуска и список агентов с их расписанием.
Также используйте официальную документацию Битрикс по настройке агентов для сверки параметров. Подробнее о cron читайте на Wikipedia.
Типичные ошибки при настройке cron
- Неправильный путь к PHP (особенно на серверах с несколькими версиями).
- Забыли переключить режим агентов в админке.
- Не создали файл лога или нет прав на запись.
- Агенты заблокированы в b_agent (IS_LOCK = Y) после сбоя — нужно очистить вручную.
Что входит в работу по настройке
- Анализ текущей конфигурации: проверка режима агентов, состава агентов, наличие блокировок.
- Настройка crontab: добавление задач с правильными путями к PHP, логирование.
- Тестирование всех агентов: убедимся, что каждый агент выполняется в срок.
- Оптимизация периодичности: корректировка интервалов под нагрузку.
- Документация: описание всех добавленных задач, схемы перезапуска.
- Консультация: ответы на вопросы, обучение работе с cron.
Сроки и стоимость
Настройка cron для типового сервера — 1–2 часа, включая проверку работоспособности всех агентов и настройку логирования. Для сложных проектов с нестандартной архитектурой может потребоваться до 4 часов. Стоимость рассчитывается индивидуально, в зависимости от сложности. Свяжитесь с нами для точной оценки вашего проекта — мы подберём оптимальное решение.
Закажите профессиональную настройку cron для Битрикс с гарантией результата. Получите консультацию — оценим ваш проект, подготовим конфигурацию и проведём тестирование.







