Планировщик
Панель управления
⇒Настройки
⇒Планировщик
Планировщик позволяет создавать периодические сервисные задачи, выполняемые в фоновом режиме через заданные промежутки времени. Важно понимать, что промежутки времени выполнения, указанные на сайте, относительны, потому что первый период задается непосредственно в самом планировщике на сервере, а второй период считается уже на самом сайте по дате последнего выполнения задачи.
Для корректной работы планировщика необходимо создать задание для CRON на сервере. Если вы не знаете как это сделать - обратитесь в поддержку хостинга.
Параметры для задания CRON
Команда для выполнения - обычно выглядит так:
php -f /path/to/site/cron.php > /dev/null
где /path/to/site
- абсолютный путь к папке сайта на сервере.
вместо php
можно указать полный путь к интерпретатору или к интерпретатору другой версии, например:
/usr/bin/php -f /path/to/site/cron.php > /dev/null
/usr/bin/php5.6 -f /path/to/site/cron.php > /dev/null
/opt/php72/bin/php -f /path/to/site/cron.php > /dev/null
Интервал выполнения - 5 минут. Это рекомендуемое значение. Если его невозможно установить - используйте больший интервал, но при этом учитывайте что некоторые действия могут обрабатываться позже (например, отправка уведомлений о личных сообщениях).
Обращаем ваше внимание, что формирование команды другого типа, например:
wget http://www.site.ru/cron.php
по умолчанию работать не будет.
Если же по каким-то причинам вам необходимо запускать планировщик подобными способами, то нужно открыть файл cron.php, который находится в корне сайта, и удалить (или закомментировать) строку:
if(PHP_SAPI != 'cli') { die('Access denied'); }
Однако, при таком способе следует понимать, что для PHP CLI по-умолчанию нет лимитов на время выполнения скрипта и все «долгие» задачи планировщика успеют выполниться. В случае если вы закомментируете указанную выше строку и команда для CRON у вас будет другая, то вы должны сами следить за лимитами в конфигурации PHP. За это отвечают директивы max_execution_time и max_input_time.