На наших серверах доступен запуск скриптов по расписанию через планировщик cron. Чтобы настроить его, вам нужно зайти в консоль сервера через SSH и выполнить команду
crontab -e
Откроется редактор nano, в котором вам нужно будет поместить курсор на последнюю строчку и написать свою команду в следующем формате:
Минута Час День Месяц День недели Команда
Сохранение - Ctrl+O, выход через Ctrl+X. Если вы выходите без сохранения, то редактор спросит вас, сохранить файл или нет. Ответить нужно кнопками Y или N.
Например, выполнение файла test.php из корня вашей директории каждый день, каждые 10 минут будет выглядеть вот так:
*/10 * * * * php ~/test.php
Символ ~ в GNU/Linux - это ссылка на вашу домашнюю директорию.
Скрипт выполняется от имени вашего пользователя, так что у него есть доступ к тем же файлам и директориям, что и при запуске через браузер.
Вы можете указать email, на который нужно отправлять сообщения о выполнении ваших скриптов. Просто укажите в начале
MAILTO=ваш@email.ru Минута Час День Месяц День недели Команда
Для работы в консольном режиме MODX, вы можете использовать вот такой php файл:
<?php
// Включаем консольный режим движка
define('MODX_API_MODE', true);
// Сам файл находится в домашней директории, а MODX по отношению к нему - в www
require 'www/index.php';
// Запускает нужные службы MODX
$modx->getService('error','error.modError');
$modx->setLogLevel(modX::LOG_LEVEL_ERROR);
$modx->setLogTarget(XPDO_CLI_MODE ? 'ECHO' : 'HTML');
// Дальше любые ваши операции с использованием объекта $modx
Имейте в виду, что работа с расписанием задач - это набор команд серверу.
А это означает, что если ваш сайт переезжает на другой сервер, то ваш список туда не копируется.
Нужно будет запустить crontab -e
на новом сервере и заново создать свои задания.