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

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

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

Етапи розробки

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

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

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

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

Агент у 1С-Бітрікс — це PHP-функція, яка має виконуватися за розкладом. Коли агенти працюють «на хітах» (тобто запускаються при кожному HTTP-запиті), на проєкті з низьким трафіком задачі можуть не виконуватися годинами. Чому? Тому що агент на хіті чекає наступного відвідувача. Вночі ніхто не заходить — розсилка не відправляється, індекс пошуку не оновлюється, залишки не синхронізуються.

Як працюють агенти у Бітріксі

Агенти зберігаються в таблиці b_agent. Кожен запис містить: ім'я функції-агента, період запуску (PERIOD), дату наступного запуску (NEXT_EXEC), прапор активності.

Два режими роботи:

Режим «на хітах». При кожному HTTP-запиті Бітрікс перевіряє таблицю b_agent — чи є агенти, у яких NEXT_EXEC <= NOW(). Якщо є — запускає в рамках поточного HTTP-запиту. Плюс: працює без налаштування сервера. Мінус: немає гарантії часу виконання, збільшує час відповіді сторінки, на низькотрафікових сайтах агенти виконуються із великими затримками.

Режим «через cron». Агенти запускаються через системний cron незалежно від HTTP-трафіку. Скрипт /bitrix/modules/main/tools/agent_exec.php викликається кронтабом, перевіряє b_agent і запускає прострочені агенти. Це правильний спосіб для будь-якого продакшн-проєкту.

Налаштування cron для агентів

Стандартний запис у crontab для запуску агентів щохвилини:

* * * * * /usr/bin/php -f /home/bitrix/www/bitrix/modules/main/tools/agent_exec.php > /dev/null 2>&1

Додатково — для гарантії виконання агентів, прив'язаних до точного часу (наприклад, відкладене відправлення email):

*/5 * * * * /usr/bin/php -f /home/bitrix/www/bitrix/modules/main/tools/event_exec.php > /dev/null 2>&1

event_exec.php — обробник черги поштових подій. Без нього відправлення email із черги залежить від хітів.

У налаштуваннях Бітрікса потрібно перемкнути режим: «Налаштування → Налаштування модулів → Головний модуль → Використовувати cron для агентів» — увімкнути. Після цього агенти перестають запускатися на хітах.

Кастомні cron-задачі

Окрім агентів Бітрікса, на продакшн-сервері часто потрібні власні cron-задачі:

Очищення кешу за розкладом. Якщо кеш не інвалідується автоматично:

0 4 * * * /usr/bin/php -f /home/bitrix/www/bitrix/modules/main/tools/clear_cache.php > /dev/null 2>&1

Імпорт із 1С. Якщо обмін не через push, а за розкладом — скрипт запуску CommerceML-імпорту:

0 */2 * * * /usr/bin/php -f /home/bitrix/www/local/php_interface/import_1c.php >> /var/log/bitrix_import.log 2>&1

Переіндексація пошуку.

0 2 * * 0 /usr/bin/php -f /home/bitrix/www/bitrix/modules/search/tools/index.php > /dev/null 2>&1

Моніторинг агентів

Для перевірки стану агентів:

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

Агенти з NEXT_EXEC у минулому на кілька годин — ознака того, що cron не працює або агент впав із помилкою. Помилки агентів записуються в лог: «Налаштування → Журнал подій» (тип події AGENT).

Терміни

Налаштування cron для агентів та базових задач — 2–4 години: діагностика поточного режиму, налаштування crontab, перемикання режиму у Бітріксі, перевірка виконання. Для складних cron-сценаріїв із моніторингом — 1–2 робочі дні.