Настройка cron для автоматических задач 1С-Битрикс
Без корректно настроенного cron в Битрикс перестают работать агенты: не уходят письма, не обновляются цены из 1С, не удаляются просроченные корзины. Штатный механизм «агенты через хиты» (когда агент запускается при каждом запросе пользователя) создаёт непредсказуемые задержки и тормозит ответ страницы при тяжёлых задачах.
Два режима запуска агентов
Битрикс поддерживает два режима — через хиты и через cron. Переключение: Настройки → Настройки продукта → Агенты.
Режим хитов (по умолчанию): агенты запускаются при обычных запросах к сайту. Минус — задержка выполнения зависит от посещаемости. Ночью, когда нужно запустить индексацию или отправить рассылку, хитов может не быть совсем.
Режим cron: агенты выполняются системным планировщиком независимо от трафика. Это единственный правильный вариант для продакшена.
Настройка системного cron
После переключения режима добавьте задачу в crontab пользователя веб-сервера (обычно www-data или bitrix):
*/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.
Отдельный 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
Случай из практики
Интернет-магазин на редакции «Малый бизнес», хостинг на виртуальном сервере. Жалоба: письма об оплате уходят с опозданием на 2–4 часа, иногда не уходят совсем. Диагностика: агенты работали в режиме хитов, ночью трафика нет. Почтовая очередь в b_event накапливалась, модуль main не запускался. Решение: переключение на cron с интервалом 2 минуты, добавление задачи обработки почтовой очереди. После — письма уходят в течение 2 минут после события.
Контроль выполнения
Проверить, когда последний раз выполнялись агенты: таблица b_agent в БД, поле LAST_EXEC. Если значение не обновляется — cron не работает.
В административном интерфейсе: Настройки → Производительность → Агенты. Видно время последнего запуска и список агентов с их расписанием.
Сроки выполнения
Настройка cron для типового сервера — 1–2 часа, включая проверку работоспособности всех агентов и настройку логирования.







