Если у вас возникли какие либо вопросы которые вы не смогли решить по нашим публикациям самостоятельно,
то ждем ваше обращение в нашей службе тех поддержки.
Вначале немного представлюсь. Меня зовут Рыжонин Николай, в "1С-Битрикс" я курирую направление производительности продуктов компании. Если у вас есть вопросы, предложения или пожелания, касающиеся производительности, обращайтесь e-mail:rns@bitrix.ru
Данная тема уже не раз подымалась (например тут ), но тем не менее все таки решил опубликовать обобщенное решения для выполнения всех агентов из под cron.
Для начала полностью отключим выполнение агентов на хите. Для этого выполним следующую команду в php консоли.
В результате выполнения должно быть "NN".
После этого убираем из файла /bitrix/php_interface/dbconn.php определение следующих констант:
И добавляем
Создаем файл проверки агентов и рассылки системных сообщений /bitrix/php_interface/cron_events.php (обновлен 10.09.2015)
И добавляем данный скрипт в cron
После этого все агенты и отправка системных событий будут обрабатывается из под cron, раз в 5 минут. Чтобы не увеличивалась очередь отправки почтовых сообщений, советую изменить параметр отвечающий за количество почтовых событий обрабатываемых за раз. Для этого выполняем в php консоли следующую команду
Обновлено:
- 22.03.2018 - Изменен скрипт для лучшей совместимости с push&pull
Назад в раздел
то ждем ваше обращение в нашей службе тех поддержки.
Выполнение всех агентов на cron
Добрый день, уважаемые коллеги!Вначале немного представлюсь. Меня зовут Рыжонин Николай, в "1С-Битрикс" я курирую направление производительности продуктов компании. Если у вас есть вопросы, предложения или пожелания, касающиеся производительности, обращайтесь e-mail:
Данная тема уже не раз подымалась (
Для начала полностью отключим выполнение агентов на хите. Для этого выполним следующую команду в 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 (обновлен 10.09.2015)
<?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(); ?> |
И добавляем данный скрипт в cron
*/5 * * * * /usr/bin/php -f /home/bitrix/www/bitrix/php_interface/cron_events.php |
После этого все агенты и отправка системных событий будут обрабатывается из под cron, раз в 5 минут. Чтобы не увеличивалась очередь отправки почтовых сообщений, советую изменить параметр отвечающий за количество почтовых событий обрабатываемых за раз. Для этого выполняем в php консоли следующую команду
COption::SetOptionString("main", "mail_event_bulk", "20"); echo COption::GetOptionString("main", "mail_event_bulk", "5"); |
Обновлено:
- 22.03.2018 - Изменен скрипт для лучшей совместимости с push&pull
Назад в раздел
Подписаться на новые материалы раздела: