+7 495 008 8452
  • Загрузка
Выберите ваш цвет

Перевод агентов на крон, окончательная попытка

Если у вас возникли какие либо вопросы которые вы не смогли решить по нашим публикациям самостоятельно,
то ждем ваше обращение в нашей службе тех поддержки.


Перевод агентов на крон, окончательная попытка

Уже было несколько попыток перевести агенты на крон. В одной попытке не затрагивались периодические, в другой попытке подмешивалась еще и отправка почты. В этой попытке мы остановимся исключительно на всех агентах.

Немного ликбеза. Что такое агент в терминологии Битрикс? Это метод или функция, который выполняет определенную функцию по расписанию. Например, импорт/экспорт, очистка данных, либо еще какие-то действия.  Если такие агенты не переводить на крон (планировщик), то они будут выполняться на хитах пользователя. Это означает, что последний будет ждать выполнения агента, что увеличит время выполнения страницы, и отрицательно скажется на отношении пользователя к сайту. Поэтому, данная инструкция обязательна к применению.

Итак, порядок действий:

1. Из /bitrix/php_interface/dbconn.php убрать любые упоминания:
  • BX_CRONTAB
  • BX_CRONTAB_SUPPORT
  • NO_AGENT_CHECK
  • DisableEventsCheck
2. В командной PHP-строке в админке выполнить:
COption::SetOptionString("main", "agents_use_crontab", "N"); 
COption::SetOptionString("main", "check_agents", "N");  

3. Создать файл 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);

require($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/include/prolog_before.php');

@set_time_limit(0);
@ignore_user_abort(true);

CAgent::CheckAgents();  
define('BX_CRONTAB', true);  
CAgent::CheckAgents();  
//require($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/tools/backup.php');

CAgent::CheckAgents() вызывается два раза специально, чтобы выполнить как периодические агенты, так и не периодические.
Если вам требуется, чтобы данный файл отвечал еще и за бекап, откомментируйте последнюю строчку.

В следующих статьях мы рассмотрим как добавлять задачу крон на исполнение данного файла в различных панелях управления.

Оригинал поста.

 

 

Источник: http://dev.1c-bitrix.ru/community/webdev/user/11948/blog/12569/

Назад в раздел

Подписаться на новые материалы раздела:
Загрузка...