Антон Чуркин

Автор статьи

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

Написана 10.11.2021

Понравилось?
Поделись c друзьями:

Cron в Битриксе

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

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

}

?>

Иван ЯрославцевДиректор Альтопромо
Давайте обсудим ваш проект прямо сейчас

Разрешённые форматы: doc, docx, xlsx, txt, pdf, otf, png, tiff, bmp, jpeg и jpg. Размер файла не должен превышать 10 мегабайт.

Мы гарантируем, что ваши персональные данные не будут переданы третьим лицам.