MODX. Обработка сниппетов по крону и компонент CronManager
Отредактировано: 20 Мая 2018
Для того, чтобы обработка самописного сниппета срабатывала по крону, конструкция кода должна быть примерно такой:
define('MODX_API_MODE', true);
require '---- /public_html/index.php';
$modx->getService('error', 'error.modError');
Тут код который должен отрабатываться
После чего стоит добавить файл со сниппетом в crontab список на сервере. Способ добавления зависит от сервера/хостинга, где-то есть специальные панели, где-то придется воспользоваться unix командой «crontab -e».
Можно использовать более простой в понимании вариант с использованием компонента:
CronManager
CronManager — компонент упрощающий настройку отработки скриптов по крону. Он позволяет вносить все необходимые изменения в админке MODX.
- Скачать и установить пакет CronManager;
- Добавить CronManager (файл /path/to/your/modx/assets/components/cronmanager/cron.php) в обработку на сервере, в crontab список. Способ добавления зависит от сервера/хостинга, где-то есть специальные панели, где-то придется воспользоваться unix командой «crontab -e» и добавить в cronjob аналогичную строку
cd /path/to/your/modx/installation/assets/components/cronmanager/ && php cron.php
Интервал запроса зависит от нужд, но если вы хотите иметь возможность полного управления периодом отрабатывания сниппетов, следует установить «каждую минуту, каждый день в каждом месяце»;
-
Перейти в меню управления пакетом Приложения (Extras) => CronManager;
-
Создать новую задачу (кнопка create new cronjob), задав имя сниппета и интервал повторения (будет срабатывать не чаще чем настройка обработки файла cron.php на сервере);
-
После сохранения необходимо отредактировать появившуюся в списке задачу, установив активность, и, при необходимости, поменяв настройки.
Обратите внимание, если скрипт сработал, но не дал никакого результата, то можно посмотреть файл cronlog, заглянуть в который можно кликнув правой клавишей мыши по задаче.
Тонкости
В некоторых функциях лучше указывать полный путь до файла:
$set = file_get_contents(MODX_BASE_PATH.'assets/script.php');
return $set;
Здравствуйте!
Позвольте представиться, меня зовут Марина. Более 10 лет я занимаюсь обслуживанием сайтов и развитием интернет проектов. Если вы хотите избавиться от хлопот связанных с созданием и поддержкой сайта, тогда вы попали по адресу. При работе с сайтами я предоставляю качественные услуги, ориентируясь на ваши индивидуальные потребности. Для связи со мной воспользуйтесь формой обратной связи.