Выполнять агенты через крон (cron)
По умолчанию, при открытии сайта идёт выполнение активных агентов, из-за чего страница может загружаться медленее (т.к. идёт выполнение дополнительного кода).
В целях оптимизации, рекомендуется выполнять агенты через крон.
Сначала, надо отключить выполнение агентов на каждой странице сайта, выполнив следующий код:
COption::SetOptionString("main", "agents_use_crontab", "N");
COption::SetOptionString("main", "check_agents", "N");
echo COption::GetOptionString("main", "agents_use_crontab", "Y"); // должно выводиться "N"
echo COption::GetOptionString("main", "check_agents", "Y"); // должно выводиться "N"
Далее надо подредактировать файл «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('BX_NO_ACCELERATOR_RESET', true);
define('CHK_EVENT', 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();
define('BX_CRONTAB_SUPPORT', true);
define('BX_CRONTAB', true);
CEvent::CheckEvents();
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();
И в настройках крона добавить следующее:
*/1 * * * * /usr/bin/php -f /path/to-site/bitrix/php_interface/cron_events.php
В коде выше указано, что раз в минуту надо запускать файл «bitrix/php_interface/cron_events.php».
Поддержать автора
Все статьи создаются и поддерживаются одним человеком,
если вам нравится контент, вы можете поддержать автора сайта
