Запуск агентов из cron в виртуальной машине 1С-Битрикс

3 499

Достаточно часто возникает необходимость переноса исполнения некоторых особо тяжелых агентов на cron.

Механизм запуска

Перейдите на страницу Настройки > Инструменты > Командная PHP-строка и выполните следующий код:

COption::SetOptionString("main", "agents_use_crontab", "Y");
echo COption::GetOptionString("main", "agents_use_crontab", "N");

Увидели "Y". С этой секунды на хитах будут исполняться только периодические агенты. Перейдите на страницу Настройки > Настройки продукта > Агенты и настройте показ колонки Периодичность. И отредактируйте нужные вам агенты выставив флажки в Периодичность выполнения: через заданный интервал.

В cron добавьте на выполнение команду:

/usr/bin/php -f /home/bitrix/www/bitrix/modules/main/tools/cron_events.php

Выставьте периодичность, например: */2 * * * * - что означает раз в две минуты. Примечание: Непосредственно перед выполнением задания процедура запуска агентов пытается отменить ограничение:

@set_time_limit(0);
ignore_user_abort(true);

Если set_time_limit разрешен, то время выполнения может превышать то, что стоит в настройках файла php.ini.