Для того, чтобы скрипты начали работать по расписанию, агенты необходимо перевести на Cron.
Рассмотрим метод перевода сразу всех агентов на cron.
1. Сначала полностью отключим выполнение агентов на "Событиях". Для этого запустим следующую команду в 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"); |
2. Из /bitrix/php_interface/dbconn.php убрать любые упоминания констант:
BX_CRONTABD BX_CRONTAB_SUPPORT NO_AGENT_CHECK DisableEventsCheck |
3.Добавить запись в файл /bitrix/php_interface/dbconn.php
if(!(defined("CHK_EVENT") && CHK_EVENT===true)) define("BX_CRONTAB_SUPPORT", true); |
4. Создадим файл cron_events.php с содержимым ниже и разместим его в /bitrix/php_interface/
<?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); 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"); |
5. Последним шагом будет добавление самого скрипта в cron для пользователя bitrix.
Для того, чтобы это сделать, необходимо зайти по ssh в косоль CentOS и выполнить команду crontab -u bitrix -e
*/3 * * * * /usr/bin/php -f /home/bitrix/www/bitrix/php_interface/cron_events.php |
После всех выполненных действий отправка системных событий и все агенты будут обрабатывается из под cron, раз в 3 минуты.
Описанные выше действия сможет выполнить даже неподготовленный пользователь, но правильнее будет поручить такую работу сертифицированным разработчикам, которые занимаются поддержкой сайтов на Bitrix.