Налаштування cron для автоматичних завдань 1С-Бітрікс

Без коректно налаштованого cron в Бітрікс перестають працювати агенти: не надсилаються листи, не оновлюються ціни з 1С, не видаляються протерміновані кошики. На Бітрікс-проектах типова проблема — режим агентів «через хіти» (запуск при кожному запиті користувача). Це створює непередбачувані затримки:
Послуги, які ми пропонуємо
Показано 1 з 1Усі 1626 послуг
Налаштування cron для автоматичних завдань 1С-Бітрікс
Простий
~1 день

Наші компетенції:

Часті запитання

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1415
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Розробка веб-сайту для компанії ФІКСПЕР
    996
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Розробка на базі Бітрікс, Бітрікс24, 1С для компанії Development of an Online
    735
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    863
  • image_crm_dolbimby_434_0.webp
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    773
  • image_crm_technotorgcomplex_453_0.webp
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    1134

Без коректно налаштованого cron в Бітрікс перестають працювати агенти: не надсилаються листи, не оновлюються ціни з 1С, не видаляються протерміновані кошики. На Бітрікс-проектах типова проблема — режим агентів «через хіти» (запуск при кожному запиті користувача). Це створює непередбачувані затримки: важкі завдання (перерахунок цін, відправка розсилок) виконуються тільки коли є трафік, а вночі сайт «спить». Ми стикалися з проектами, де листи про оплату приходили із запізненням до 4 годин, а черга поштових повідомлень в b_event накопичувалася до 5000 листів. На цьому фоні знижувалася конверсія — клієнти не отримували сповіщення про статус замовлення. Єдине правильне рішення — перевести агенти на системний cron. У цій статті розберемо, як налаштувати cron для продакшену, уникнути типових помилок і скоротити затримки до 1-2 хвилин.

Режими запуску агентів: хіти vs cron

Бітрікс підтримує два режими — через хіти і через cron. Перемикання: Налаштування → Налаштування продукту → Агенти.

Режим хітів (за замовчуванням): агенти запускаються при звичайних запитах до сайту. Мінус — затримка виконання залежить від відвідуваності. Вночі, коли потрібно запустити індексацію або відправити розсилку, хітів може не бути зовсім. В результаті агенти накопичуються, і сторінки починають гальмувати.

Режим cron: агенти виконуються системним планувальником незалежно від трафіку. Це єдиний правильний варіант для продакшену: агенти відпрацьовують строго за розкладом, без впливу на користувацький досвід.

Який режим надійніший?

Характеристика Режим хітів Режим cron
Залежність від трафіку Повна Немає
Точність виконання Низька (до кількох годин затримки) Висока (в межах інтервалу запуску)
Навантаження на сервер Пікова при масових запусках Рівномірна
Ризик пропуску агентів Високий при відсутності хітів Мінімальний
Рекомендація Тільки для розробки Для продакшену

Режим cron у 10 разів надійніший за режим хітів по точності виконання агентів. Економія часу на ручному запуску агентів економить бюджет на адміністрування.

Налаштування cron: покрокова інструкція

  1. Перемкніть режим агентів в адмінці на «cron».
  2. Визначте користувача веб-сервера (зазвичай www-data або bitrix).
  3. Додайте задачу в 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.

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