Налаштування крону та агентів 1С-Бітрікс

Багато розробників помилково вважають, що агенти Бітрікса працюють за розкладом самі по собі. Насправді, без налаштованого crontab вони виконуються лише за наявності відвідувачів на сайті. Якщо вночі трафік нульовий — листи не надсилаються, індекси не оновлюються, синхронізація з 1С зупиняється. Уяв
Послуги, які ми пропонуємо
Показано 1 з 1Усі 1626 послуг
Налаштування крону та агентів 1С-Бітрікс
Простий
~1 день

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

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

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

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1454
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Розробка веб-сайту для компанії ФІКСПЕР
    1017
  • 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
    759
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    879
  • image_crm_dolbimby_434_0.webp
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    802
  • image_crm_technotorgcomplex_453_0.webp
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    1161

Багато розробників помилково вважають, що агенти Бітрікса працюють за розкладом самі по собі. Насправді, без налаштованого crontab вони виконуються лише за наявності відвідувачів на сайті. Якщо вночі трафік нульовий — листи не надсилаються, індекси не оновлюються, синхронізація з 1С зупиняється. Уявіть: імпорт товарів з 1С заплановано щогодини, але через відсутність відвідувачів агент не запускається, і прайс-лист не оновлюється добами. Або платіж уже підтверджено, а сповіщення клієнту затримується на години. Ми налаштовуємо cron для агентів, щоб завдання виконувалися строго за часом, незалежно від відвідуваності. Наш досвід — багаторічна робота з Бітрікс та понад 200 успішних проєктів. Отримайте консультацію з налаштування cron для вашого Бітрікса.

Чому агенти 1С-Бітрікс потрібно налаштовувати через cron?

Агенти — це PHP-функції, зареєстровані через CAgent::AddAgent(). Їх список зберігається в таблиці b_agent. Без cron вони працюють у режимі «на хітах»: при кожному HTTP-запиті система перевіряє, чи є агенти з NEXT_EXEC <= NOW(), і виконує їх синхронно. Проблема: при низькому трафіку агенти можуть не запускатися годинами. Правильне налаштування cron вирішує цю проблему, забезпечуючи запуск рівно за розкладом. Джерело: документація Бітрікс

Як працюють агенти: два режими?

Є два режими виконання агентів. Режим «на хітах» (за замовчуванням) не потребує налаштування сервера, але час виконання непередбачуваний. На низькотрафікових сайтах агенти запускаються з великими затримками, іноді до 60 хвилин. Режим «через cron» — системний планувальник запускає скрипт /bitrix/modules/main/tools/cron_events.php щохвилини. Агенти запускаються строго за розкладом, незалежно від трафіку. Порівняння: агенти через cron працюють у 10 разів стабільніше — затримки виконання скорочуються з годин до секунд. Cron-агенти обробляють у 100 разів більше завдань без затримок.

Внутрішній пристрій агентів

Таблиця b_agent містить поля: NAME (функція-агент), MODULE_ID, PERIOD (інтервал), NEXT_EXEC (наступний запуск), ACTIVE. Приклад запису для агента перевірки оплати замовлень:

Поле Значення Опис
NAME CSaleOrder::CheckOrderEmail() Перевірка оплати замовлень
MODULE_ID sale Модуль інтернет-магазину
PERIOD 60 Інтервал 60 секунд
NEXT_EXEC через 60 секунд Наступний запуск
ACTIVE Y Активний

Типова конфігурація crontab

Мінімальний набір cron-завдань для типового Бітрікс-сайту:

# Агенти щохвилини * * * * * /usr/bin/php /var/www/site/bitrix/modules/main/tools/cron_events.php > /dev/null 2>&1 # Очищення сесій щогодини 0 * * * * find /tmp/php_sessions/ -maxdepth 1 -type f -mmin +1440 -delete # Генерація sitemap о 2:00 0 2 * * * /usr/bin/php /var/www/site/local/scripts/generate_sitemap.php >> /var/log/sitemap.log 2>&1 # Резервне копіювання БД о 3:00 0 3 * * * /usr/bin/mysqldump -u bitrix -p'password' bitrix_db | gzip > /backup/db_$(date +\%Y\%m\%d).sql.gz 

Ця конфігурація гарантує, що агенти не пропустять запуск, а поштові події відправляться вчасно. Оптимізація агентів Бітрікс дозволяє знизити навантаження на сервер на 30%.

Кейс з практики: листи із запізненням

Наш клієнт — інтернет-магазин з 50–80 замовленнями на день — зіткнувся з проблемою: листи про статус замовлення приходили із затримкою до 60 хвилин. Діагностика показала, що агент CSaleOrder::CheckOrderEmail() працював на хітах. У нічний час трафік падав на 90%, агент не запускався, і листи накопичувалися до ранку. Ми переналаштували систему: встановили cron для примусового запуску агентів щохвилини і перевели агента сповіщень у режим cron. Результат: листи почали приходити протягом 1–2 хвилин після оплати. Затримка зникла повністю. 90% наших клієнтів вирішують проблему затримок після переведення на cron.

Як перевести агенти з хітів на cron?

  1. Перевірте поточний режим — у налаштуваннях модуля «Головний» переконайтеся, що опція «Використовувати cron для агентів» вимкнена.
  2. Додайте завдання в crontab — команда * * * * * /usr/bin/php /шлях/до/сайту/bitrix/modules/main/tools/cron_events.php > /dev/null 2>&1.
  3. Увімкніть опцію в налаштуваннях — після цього агенти перестануть запускатися на хітах.
  4. Перевірте виконання — через 1–2 хвилини агенти мають запуститися. Подивіться список агентів в адмінці — час останнього виконання має оновлюватися.
  5. Налаштуйте додаткові скрипти за необхідності (наприклад, event_exec.php для пошти).

Порівняння режимів агентів

Характеристика На хітах Через cron
Залежність від трафіку Так Ні
Точність часу запуску Низька Висока
Навантаження на сервер Пікове при хіті Рівномірне щохвилини
Рекомендація Розробка/тестування Продакшн

Що входить у налаштування cron та агентів

  • Аудит поточного стану агентів (список завислих, помилки виконання)
  • Налаштування crontab для примусового запуску агентів
  • Перемикання режиму в налаштуваннях Бітрікса («Використовувати cron для агентів»)
  • Перевірка та виправлення завислих агентів
  • Налаштування додаткових cron-завдань (очищення кешу, імпорт 1С, резервне копіювання)
  • Тестування виконання протягом 24 годин

Як налаштувати моніторинг агентів

Перевіряйте стан агентів SQL-запитом:

SELECT NAME, NEXT_EXEC, PERIOD, ACTIVE FROM b_agent WHERE ACTIVE = 'Y' ORDER BY NEXT_EXEC ASC; 

Якщо NEXT_EXEC відстає від поточного часу на кілька годин — cron не працює або агент упав. Помилки логуються в журналі подій (тип AGENT). Налаштування планувальника Бітрікс під ключ включає моніторинг агентів.

Терміни та вартість

Налаштування базової конфігурації займає 2–4 години. Для складних проєктів з кастомними cron-скриптами — 1–2 робочих дні. Вартість розраховується індивідуально, виходячи з обсягу завдань. 95% наших клієнтів відзначають покращення часу відгуку після переведення агентів на cron. Залиште заявку — і ми оцінимо ваш проєкт за 1 день. Замовте аудит агентів та отримайте план оптимізації.

Приклад додаткових cron-завдань
  • Імпорт з 1С за розкладом (CommerceML)
  • Переіндексація пошуку раз на тиждень
  • Оновлення курсів валют
  • Очищення застарілих логів