Налаштування 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 години, включаючи перевірку працездатності всіх агентів та налаштування логування.







