Записки
01.04.2018
И так к делу, заходим в командную PHP-строку в административной части сайта:
Настройки / Инструменты / Командная PHP-строка
Для отключения выполнение всех агентов на хитах выполняем следующую команду:
В результате выполнения должно быть "NN".
Далее, открываем файл (путь к файлу) :
bitrix / php_interface / dbconn.php
Находим и удаляем данные строки, если они существуют. По моему в новой редакции Битрикса они уже отсутствуют.
И добавляем в этот файл следующее:
Создаем файл с именем "cron_events.php" для проверки агентов и рассылки системных сообщений в папке:
bitrix / php_interface /
Со следующим кодом:
Вот далее самое сложное. Необходимо добавить скрипт для запуска cron на Вашем сервере. Если для управления сервера Вы пользуетесь панелью ISPmanager, то заходим в:
Система / Планировщик
и нажимаем на кнопку "Создать"
В строке "Команда" вставляем путь к файлу "cron_events.php":
/usr/bin/php /var/www/ВАШ САЙТ/data/www/ВАШ САЙТ/bitrix/php_interface/cron_events.php
Соответственно вместо "ВАШ САЙТ" вставьте папку где хранится Ваш сайт. Правильный путь можно посмотреть в "Менеджере файлов" панели управления ISPmanager.
В строке "Описание" подробно напишите за что отвечает данный cron.
В строке "Расписание" поставьте "экспертный режим".
Далее в строках "Минуты", "Часы", и т. д. везде ставим "*", чтобы задание выполнялось каждую минуту.
В строке "Не отправлять отчет по e-mail" ставим галочку, а то каждую минуту будет приходить письмо об успешном выполнении.
Вот и всё.
Проверить выполняются ли агенты каждую минуту можно в административной части Вашего сайта. Заходим:
Настройки / Настройки продукта / Агенты
Находим агента с интервалом выполнения в 60 секунд, смотрим на время последнего запуска. Ждём минуту, или более, обновляем страницу. Время последнего запуска должно изменится на минуту вперёд или более, зависит от того, сколько времени Вы не обновляли страницу.
Выполнение всех агентов на 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); |
Создаем файл с именем "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); 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"); ?> |
Вот далее самое сложное. Необходимо добавить скрипт для запуска cron на Вашем сервере. Если для управления сервера Вы пользуетесь панелью ISPmanager, то заходим в:
Система / Планировщик
и нажимаем на кнопку "Создать"
В строке "Команда" вставляем путь к файлу "cron_events.php":
/usr/bin/php /var/www/ВАШ САЙТ/data/www/ВАШ САЙТ/bitrix/php_interface/cron_events.php
Соответственно вместо "ВАШ САЙТ" вставьте папку где хранится Ваш сайт. Правильный путь можно посмотреть в "Менеджере файлов" панели управления ISPmanager.
В строке "Описание" подробно напишите за что отвечает данный cron.
В строке "Расписание" поставьте "экспертный режим".
Далее в строках "Минуты", "Часы", и т. д. везде ставим "*", чтобы задание выполнялось каждую минуту.
В строке "Не отправлять отчет по e-mail" ставим галочку, а то каждую минуту будет приходить письмо об успешном выполнении.
Вот и всё.
Проверить выполняются ли агенты каждую минуту можно в административной части Вашего сайта. Заходим:
Настройки / Настройки продукта / Агенты
Находим агента с интервалом выполнения в 60 секунд, смотрим на время последнего запуска. Ждём минуту, или более, обновляем страницу. Время последнего запуска должно изменится на минуту вперёд или более, зависит от того, сколько времени Вы не обновляли страницу.