Без коректно налаштованого 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 для Бітрікс з гарантією результату. Отримайте консультацію — оцінимо ваш проект, підготуємо конфігурацію та проведемо тестування.







