Размер шрифта
Цвет фона и шрифта
Изображения
Озвучивание текста
Обычная версия сайта
ProfiCRM
+7 495-256-29-09
+7 495-256-29-09
Заказать звонок
E-mail
sale@proficrm.ru
Адрес
г. Москва, ул. Алабяна, 12
г. Санкт-Петербуг, ул Кременчугская, 11к1
Режим работы
Пн. – Пт.: с 10:00 до 19:00
Подать заявку
Компания
  • О компании
  • Руководители
  • Партнеры
  • Лицензии и сертификаты
  • Документы
  • Отзывы
  • Реквизиты
Лицензии
  • Битрикс24
    • Лицензии
    • Продление (коробка)
    • Переход (коробка)
  • SberCRM
  • amoCRM
  • Лицензии 1С-Битрикс
    • Лицензии
    • Переходы
    • Продление
  • Готовые решения
    • Интернет-магазины
    • Корпоративные сайты
    • Модули ProfiCRM
Услуги
  • Внедрение CRM
    • Техподдержка CRM
    • CRM базовое внедрение
    • CRM для торговых компаний
  • Веб-проекты
    • Магазин на готовом решении
    • Автоматический E-mail маркетинг
Кейсы
  • Email-Маркетинг
  • Битрикс24
Блог
Акции
Контакты
0
ProfiCRM
г. Москва, ул. Алабяна, 12
г. Санкт-Петербуг, ул Кременчугская, 11к1
+7 495-256-29-09
+7 495-256-29-09
Заказать звонок
E-mail
sale@proficrm.ru
Адрес
г. Москва, ул. Алабяна, 12
г. Санкт-Петербуг, ул Кременчугская, 11к1
Режим работы
Пн. – Пт.: с 10:00 до 19:00
Войти
0 Корзина
Компания
  • О компании
  • Руководители
  • Партнеры
  • Лицензии и сертификаты
  • Документы
  • Отзывы
  • Реквизиты
Лицензии
  • Битрикс24
    Битрикс24
    • Лицензии
    • Продление (коробка)
    • Переход (коробка)
  • SberCRM
    SberCRM
  • amoCRM
    amoCRM
  • Лицензии 1С-Битрикс
    Лицензии 1С-Битрикс
    • Лицензии
    • Переходы
    • Продление
  • Готовые решения
    Готовые решения
    • Интернет-магазины
    • Корпоративные сайты
    • Модули ProfiCRM
Услуги
  • Внедрение CRM
    Внедрение CRM
    • Техподдержка CRM
    • CRM базовое внедрение
    • CRM для торговых компаний
  • Веб-проекты
    Веб-проекты
    • Магазин на готовом решении
    • Автоматический E-mail маркетинг
Кейсы
  • Email-Маркетинг
  • Битрикс24
Блог
Акции
Контакты
    Подать заявку
    ProfiCRM
    Компания
    • О компании
    • Руководители
    • Партнеры
    • Лицензии и сертификаты
    • Документы
    • Отзывы
    • Реквизиты
    Лицензии
    • Битрикс24
      Битрикс24
      • Лицензии
      • Продление (коробка)
      • Переход (коробка)
    • SberCRM
      SberCRM
    • amoCRM
      amoCRM
    • Лицензии 1С-Битрикс
      Лицензии 1С-Битрикс
      • Лицензии
      • Переходы
      • Продление
    • Готовые решения
      Готовые решения
      • Интернет-магазины
      • Корпоративные сайты
      • Модули ProfiCRM
    Услуги
    • Внедрение CRM
      Внедрение CRM
      • Техподдержка CRM
      • CRM базовое внедрение
      • CRM для торговых компаний
    • Веб-проекты
      Веб-проекты
      • Магазин на готовом решении
      • Автоматический E-mail маркетинг
    Кейсы
    • Email-Маркетинг
    • Битрикс24
    Блог
    Акции
    Контакты
      +7 495-256-29-09
      Заказать звонок
      E-mail
      sale@proficrm.ru
      Адрес
      г. Москва, ул. Алабяна, 12
      г. Санкт-Петербуг, ул Кременчугская, 11к1
      Режим работы
      Пн. – Пт.: с 10:00 до 19:00
      0
      Подать заявку
      ProfiCRM
      Телефоны
      +7 495-256-29-09
      Заказать звонок
      E-mail
      sale@proficrm.ru
      Адрес
      г. Москва, ул. Алабяна, 12
      г. Санкт-Петербуг, ул Кременчугская, 11к1
      Режим работы
      Пн. – Пт.: с 10:00 до 19:00
      0
      ProfiCRM
      • Компания
        • Компания
        • О компании
        • Руководители
        • Партнеры
        • Лицензии и сертификаты
        • Документы
        • Отзывы
        • Реквизиты
      • Лицензии
        • Лицензии
        • Битрикс24
          • Битрикс24
          • Лицензии
          • Продление (коробка)
          • Переход (коробка)
        • SberCRM
        • amoCRM
        • Лицензии 1С-Битрикс
          • Лицензии 1С-Битрикс
          • Лицензии
          • Переходы
          • Продление
        • Готовые решения
          • Готовые решения
          • Интернет-магазины
          • Корпоративные сайты
          • Модули ProfiCRM
      • Услуги
        • Услуги
        • Внедрение CRM
          • Внедрение CRM
          • Техподдержка CRM
          • CRM базовое внедрение
          • CRM для торговых компаний
        • Веб-проекты
          • Веб-проекты
          • Магазин на готовом решении
          • Автоматический E-mail маркетинг
      • Кейсы
        • Кейсы
        • Email-Маркетинг
        • Битрикс24
      • Блог
      • Акции
      • Контакты
      Подать заявку
      • Кабинет
      • 0 Корзина
      • +7 495-256-29-09
        • Телефоны
        • +7 495-256-29-09
        • Заказать звонок
      • г. Москва, ул. Алабяна, 12
        г. Санкт-Петербуг, ул Кременчугская, 11к1
      • sale@proficrm.ru
      • Пн. – Пт.: с 10:00 до 19:00

      Запуск агентов из cron в Битрикc, на «1С-Битрикс: Веб-окружение»

      Главная
      —
      Блог
      —
      Битрикс24
      —Запуск агентов из cron в Битрикc, на «1С-Битрикс: Веб-окружение»
      Агенты из cron в Битрикс24
      Битрикс24
      30 января 2024

      1. Об агентах

      Агенты в терминологии Битрикс это технология, с помощью которой можно запускать произвольные PHP функции с заданной периодичностью. Например, импорт/экспорт, формирование отчетов, обработка различных сущностей в CRM, либо еще какие-то действия.

      1.1. Периодические и непериодические агенты

      Агенты в Битрикс могут быть "периодические" и "непериодические" и разделяются они по значению параметра «Периодичность выполнения»:

      Переодичность выполненния агентов

      через заданный интервал – Непериодические;
      точно в указанное время – Периодические.

      1.2. Как запускаются агенты

      Есть два способа для запуска агентов, на хитах пользователей или на cron задании.

      • Хит – обращение посетителя к веб-сайту или серверу. Каждый раз, когда кто-то открывает страницу ресурса разработанного на Битрикс, отправляет запрос или выполняет какое-либо действие, это считается хитом. Хиты могут включать загрузку веб-страниц, изображений, файлов, выполнение скриптов и т. д.
      • Cron — это стандартный инструмент для планирования выполнения задач в UNIX-подобных операционных системах, таких как Linux. Он позволяет запускать команды или сценарии автоматически в определенное время, либо периодически в соответствии с расписанием, заданным пользователем. С помощью cron можно выполнять различные задачи, такие как резервное копирование данных, автоматическая обработка файлов, формирование и отправка отчетов в чат и т. д.

      По умолчанию в Битрикс агенты выполняются на хитах пользователей.

      1.3. Производительность

      Чем чаще агент выполняется, тем больше он может нагружать систему. Например, агент, запускаемый каждые 30 минут, будет более нагружать сервер, чем тот, который выполняется один раз в сутки. Агенты, которые занимают более 10 секунд на выполнение, считаются "тяжелыми" и могут серьезно снижать производительность. Если агенты запускаются на каждом хите и допустим ночью посещаемость невелика, то в моменте может накопиться большое количество агентов, что замедлит ответ системы на запрос следующего посетителя ресурса и он получит не самые быстрые секунды по загрузке страницы.

      2. Решение по переводу непереодических агентов на cron

      2.1. Переходим на страницу "Настройки > Инструменты > Командная PHP-строка" и исполним следующий код:

      COption::SetOptionString("main", "agents_use_crontab", "Y");
      echo COption::GetOptionString("main", "agents_use_crontab", "N");
      

      В результате выполнения должно вывестись "Y". С этого момента на хитах будут выполняться только периодические агенты.

      2.2. Что бы непериодические агенты выполнялись на cron, в крон необходимо добавить команду на выполнение, к примеру:

      * * * * * /usr/bin/php -f /home/bitrix/www/bitrix/modules/main/tools/cron_events.php
      

      Где:
      * * * * * - означает раз в минуту.
      /bitrix/modules/main/tools/cron_events.php – Файл в Битрикс по умолчанию для cron.

      <?php //bitrix/modules/main/tools/cron_events.php
      $_SERVER['DOCUMENT_ROOT'] = realpath(__DIR__ . '/../../../..');
      $DOCUMENT_ROOT = $_SERVER['DOCUMENT_ROOT'];
      
      define('NO_KEEP_STATISTIC', true);
      define('NOT_CHECK_PERMISSIONS',true);
      define('BX_CRONTAB', true);
      define('BX_WITH_ON_AFTER_EPILOG', true);
      define('BX_NO_ACCELERATOR_RESET', true);
      
      require($_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/include/prolog_before.php');
      
      @set_time_limit(0);
      @ignore_user_abort(true);
      
      if (CModule::IncludeModule('sender'))
      {
      	\Bitrix\Sender\MailingManager::checkPeriod(false);
      	\Bitrix\Sender\MailingManager::checkSend();
      }
      
      require($_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/tools/backup.php');
      
      CMain::FinalActions();
      ?>
      

      В самом начале этого файла установлена константа define("BX_CRONTAB", true), а в прологе устанавливается другая константа define("BX_CRONTAB_SUPPORT", true). В результате данный крон-скрипт обрабатывает ТОЛЬКО непериодические агенты.

      2.3. Настройка файла для cron «1С-Битрикс: Веб-окружение» (BitrixEnv)

      Команду на выполнение нужно записывать в специальный файл для cron. В окружении BitrixEnv данный файл создаётся автоматически при включении cron для сайта при его создании или через меню BitrixEnv (6. Configure pool sites > 3. Change cron tasks on site).

      «1С-Битрикс: Веб-окружение» (BitrixEnv)

      Созданный файл лежит в директории etc/cron.d/ и имеет название bx_dbName, где dbName - имя базы данных сайта. Для каждого сайта создается свой файл.

      Задание на cron

      Для сайта default (директории /home/bitrix/www), если cron не включен в данных настройках выше, задание для cron все равно выполнятся, и оно прописано в файле /etc/crontab.

      В результате непериодические агенты будут запускать на cron, периодические и отправка почтовых событий на хитах.

      3. Решение по переводу всех агентов на cron, отправку почты оставляем на хитах

      3.1. Вначале полностью отключим выполнение агентов на хите.
      Для этого выполним следующую команду в php консоли Настройки > Инструменты > Командная PHP-строка:

      COption::SetOptionString("main", "agents_use_crontab", "N"); 
      echo COption::GetOptionString("main", "agents_use_crontab", "N"); 
      COption::SetOptionString("main", "check_agents", "N"); 
      echo COption::GetOptionString("main", "check_agents", "Y");
      

      В результате выполнения должно вывестись "NN".

      3.2. Далее проверим, чтобы в файле /php_interface/dbconn.php не было установленных констант:

      define("BX_CRONTAB_SUPPORT", true); - Опция, которая влияет на выбор агентов в функции CheckAgents
      define("BX_CRONTAB", true); - Опция запрещает выполнение агента в прологе
      define("NO_AGENT_CHECK", true); - Опция отключает выполнение всех агентов (если они на хите работают)
      define("DisableEventsCheck", true); - Запрет обработки отправки писем на хите. Письма должны работать по cron, если cron не настроить, то письма не будут отправляться!
      

      Если такие есть, удаляем или закомментируем (символ #).

      3.3. Создаем свой файл /bitrix/php_interface/cron_events.php

      Файл создаем по примеру системного файла /bitrix/modules/main/tools/cron_events.php (см п. 2.2) с тем отличим, что добавляем команду на запуск агентов CAgent::CheckAgents(), а также переносим определение константы define("BX_CRONTAB", true) после команды на запуск агентов.
      Команда CEvent::CheckEvents() на отправку писем по крон прописывается опционально, так как отправку писем оставили на хитах.

      <?php //bitrix/php_interface/cron_events.php
      $_SERVER["DOCUMENT_ROOT"] = realpath(dirname(__FILE__)."/../..");
      $DOCUMENT_ROOT = $_SERVER["DOCUMENT_ROOT"];
      
      define("NO_KEEP_STATISTIC", true);
      define("NOT_CHECK_PERMISSIONS",true);
      define('BX_NO_ACCELERATOR_RESET', true);
      define('BX_WITH_ON_AFTER_EPILOG', true);
      
      require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
      
      @set_time_limit(0);
      @ignore_user_abort(true);
      
      CAgent::CheckAgents(); // Выполнятся все агенты: переодические и непереодические
      CEvent::CheckEvents(); // Почтовые события отправляются на хитах, но и так же здесь
      define("BX_CRONTAB", true);
      
      if(CModule::IncludeModule('sender'))
      {
          \Bitrix\Sender\MailingManager::checkPeriod(false);
          \Bitrix\Sender\MailingManager::checkSend();
      }
      
      //Файл резервного копирования
      require($_SERVER['DOCUMENT_ROOT']."/bitrix/modules/main/tools/backup.php");
      
      CMain::FinalActions();
      ?>
      

      При вызове данного файла будут выполнять как переодические так и непереодические агенты.

      3.4. Пропишем команду для cron на выполнение нашего файла

      * * * * * /usr/bin/php -f /home/bitrix/www/bitrix/php_interface/cron_events.php
      

      Где:
      * * * * * - означает раз в минуту.
      /bitrix/php_interface/cron_events.php – Свой файл для крон

      3.4.1. Настройка файла для cron на «1С-Битрикс: Веб-окружение» (BitrixEnv).

      В дополнение к операциям по п.2.3 по включению крона для сайта в веб-окружение Bitrix, необходимо в специальном файле для cron, расположенном в директории etc/cron.d/, прописать свой файл на выполнение для cron.

      Задание на cron

      К примеру в файле /etc/cron.d/bx_dbdev24 вместо
      …/bitrix/modules/main/tools/cron_events.php
      Необходимо внести
      …/bitrix/php_interface/cron_events.php

      Все остальное в файле остается без изменений.

      Примечание: Если у вас настроено регулярное резервное копирование «с агентами на cron» и создания резервной копии занимает продолжительное время, то на время создания резервной копии файл крона не будет повторно запускаться и соответственно не будут запускаться агенты на крон. В данном случае рекомендуется настроить запуск резервного копирования «через облачный сервис "1С-Битрикс"» или настроить запуск создания резервной копии отдельным заданием на крон.

      В результате все агенты периодические и непериодические будут запускать на cron, а отправка почтовых событий будет выполняться сразу на хитах пользователей.


      Услуги
      Техподдержка CRM
      Проведем любые доработки CRM системы под нужды вашей компании.
      2 800 ₽/час
      Сотрудники
      Руководитель проектов
      Семенцов Сергей
      Написать сообщение
      Телефон
      +7 (995) 600-79-90
      E-mail
      s.sementsov@proficrm.ru
      • Комментарии
      Загрузка комментариев...
      Назад к списку
      • Битрикс24 20
      • Внедрение CRM 6
      • Маркетинг 2
      • О компании 2
      CRM-система версия битрикс выбор CRM для бизнеса коробочная версия лучшие CRM-системы облачная версия сравнение CRM
      Компания
      Лицензии
      Услуги
      Кейсы
      Блог
      Акции
      Контакты
      Подписаться на рассылку
      +7 495-256-29-09
      +7 495-256-29-09
      Заказать звонок
      E-mail
      sale@proficrm.ru
      Адрес
      г. Москва, ул. Алабяна, 12
      г. Санкт-Петербуг, ул Кременчугская, 11к1
      Режим работы
      Пн. – Пт.: с 10:00 до 19:00
      Заказать звонок
      sale@proficrm.ru
      г. Москва, ул. Алабяна, 12
      г. Санкт-Петербуг, ул Кременчугская, 11к1
      © ProfiCRM 2025
      Политика конфиденциальности
      0 Корзина

      Ваша корзина пуста

      Исправить это просто: выберите в каталоге интересующий товар и нажмите кнопку «В корзину»
      Перейти в каталог