Cron в Битриксе

Антон Чуркин
Антон Чуркин PHP программист
10.11.2021

    Для запуска функций в заданное время, в битриксе существует технология Агентов.

    По умолчанию, агенты выполняются на хитах, то есть при каждом посещении сайта пользователем, битрикс проверяет, какие агенты пора запускать и выполняет их. У этого способа есть два недостатка — во первых, при нерегулярном посещении агенты могут запускаться позже чем нужно. Во вторых — тяжёлые агенты могут затормозить работу сайта. От обоих недостатков можно избавиться, если запускать агенты с помощью cron.
    Чтобы выполнять агенты через крон нужно открыть консоль 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".

    После этого убираем из файла bitrix/php_interface/dbconn.php определение следующих констант:

    define("BX_CRONTAB_SUPPORT", true);define("BX_CRONTAB", true);

    И заменяем их на:

    if(!(defined("CHK_EVENT") && CHK_EVENT===true)) define("BX_CRONTAB_SUPPORT", true);

    После этого создаем файл проверки агентов и рассылки системных сообщений. 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('CHK_EVENT', true);

    require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");

    @set_time_limit(0);

    @ignore_user_abort(true);

    CAgent::CheckAgents();

    define("BX_CRONTAB_SUPPORT", true);

    define("BX_CRONTAB", true);

    CEvent::CheckEvents();

    if (CModule::IncludeModule("subscribe"))

    {

          $cPosting = new CPosting;

          $cPosting->AutoSend();

    }

    ?>

    Читайте далее
    Разработка
    Как перенести сайт 1С:Битрикс на другой хостинг: пошаговая инструкция
    Перенос сайта 1С:Битрикс на другой хостинг
    Разработка
    Резервное копирование и восстановление сайта на 1С-Битрикс: все способы восстановления и создания бэкапа
    Резервное копирование и восстановление сайта на 1С-Битрикс
    Разработка
    Подключение JS в Bitrix: все способы в системе управления 1С-Битрикс
    Как подключить JS в Bitrix
    Разработка
    Настраиваем web-сервера, nginx и apache на одном сервере
    Настраиваем веб-сервер — nginx и apache на одном сервере
    Разработка
    Что такое Gulp и зачем нужен: как с ним работать, установка, примеры
    Что такое Gulp и как с ним работать
    Разработка
    Как добавить пиксель на сайт своими руками в 2022 году?
    Как добавить пиксель на сайт
    Разработка
    Кэширование данных в Bitrix: настройка, как это работает, что это такое
    Кэширование данных в Bitrix
    Разработка
    Cron в Битриксе - функционал Агентов для регулярных задач
    Cron в Битриксе
    Разработка
    Как установить Bitrix своими руками: инструкция
    Установка Bitrix
    Разработка
    Сортировка товаров в каталоге по цене в 1С Битриксе
    Сортировка по цене в Битриксе