Полный цикл в digital

Переводим агенты на Cron

В Битриксе агенты могут работать на хитах при загрузке страницы сайта или на cron программа-демон на сервере.

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

Для перевода агентов на cron понадобиться сервер с установленным cron.

Скрипты, которые должны запускаться на cron:

  1. /bitrix/modules/main/tools/cron_events.php
  2. /bitrix/php_interface/cron_events.php

Для дальнейшей работы нужно получить путь до файловой системы сайта, чтобы построить корректный путь до скриптов, которые будут запускаться на cron. Для этого создаем тестовый файл с PHP кодом в корне сайта и запускаем его:

bitrix.testprint_r($_SERVER['DOCUMENT_ROOT']);

Мы получили путь до файловой системы сайта, в моем случае это:

/home/bitrix/ext_www/bitrix.test

Подключаемся к серверу через SSH используя SSH клиент.

Для начала следует проверить, не прописаны ли в cron выше упомянутые файлы, прописываем команду и смотрим список текущих скриптов, запускаемых cron:

crontab -l

Для добавления новых скриптов в список запуска cron используем команду:

crontab -e

Добавляем с помощью редактора следующие строки:

* * * * * /usr/bin/php -f ваш_путь_до_сайта/bitrix/modules/main/tools/cron_events.php
*/5 * * * * /usr/bin/php -f ваш_путь_до_сайта/bitrix/php_interface/cron_events.php

В моем случае:

* * * * * /usr/bin/php -f   /home/bitrix/ext_www/bitrix.test/bitrix/modules/main/tools/cron_events.php
*/5 * * * * /usr/bin/php -f   /home/bitrix/ext_www/bitrix.test/bitrix/php_interface/cron_events.php

После проделанной работы, добавляем в файл /bitrix/php_interface/dbconn.php код:

define('BX_CRONTAB_SUPPORT', true);

Теперь агенты выполняются на cron:

Если после описанных выше действий, агенты не начали работать на cron, то переходим в Настройки -> Инструменты -> Командная 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");
Заполните форму уже сегодня!
Для начала сотрудничества необходимо заполнить заявку или заказать обратный звонок. В ответ получите коммерческое предложение, которое будет содержать индивидуальную стратегию с учетом требований и поставленных задач
Работаем по будням с 9:00 до 18:00. Заявки, отправленные в выходные, обрабатываем в первый рабочий день до 12:00.
Спасибо, ваш запрос принят и будет обработан!
Эйч Маркетинг