Skip to content
Scheduler
Scheduler
Планирование отложенных заданий в MODX 2 и MODX 3
  • MODX 2
  • MODX 3
  1. Компоненты
  2. Scheduler

Scheduler ​

Scheduler — планировщик отложенных заданий: выполняет в фоновом режиме то, что не нужно делать здесь и сейчас — импорт и экспорт, отправку писем, уведомления.

Пакет: 1.9.0-pl, авторы — Марк Хамстра и Берт Ост (modmore). Страница компонента: modstore.pro.

Возможности ​

  • Три типа заданий: PHP-файл (sFileTask), сниппет (sSnippetTask), процессор (sProcessorTask)
  • Постановка запуска из кода на любое время, которое понимает strtotime(), с передачей данных в задание
  • Циклические задания: поля recurring и interval — следующий запуск планируется после успешного, а на ошибке цикл останавливается, пока не включена настройка scheduler.recurring_on_failure
  • Повторные попытки при сбое: поля max_retries и retry_delay
  • Письма о сбоях по адресам из scheduler.email_failure, со своей темой и чанком
  • Очистка истории по scheduler.delete_tasks_after — срок хранения завершённых запусков, по умолчанию не ограничен
  • Запуск по cron или HTTP-запросом
  • Свой раздел в админке: задания, очередь запусков и история выполнения
  • Поддержка MODX 2 и MODX 3

Задание (sTask) — описание того, что и чем запускать. Запуск (sTaskRun) — одна постановка задания в очередь на конкретное время, со своими данными и результатом. У одного задания запусков может быть сколько угодно.

Один пакет на две платформы — отсюда классы без пространства имён и два способа получить сервис scheduler: в MODX 2 через $modx->getService(), в MODX 3 он же или контейнер $modx->services.

Быстрые ссылки ​

РазделОписание
Установка и настройка запускаПакет, задание cron, запуск по HTTP
Создание заданияТипы заданий, поля, цикл и повторные попытки
Планирование заданияПостановка запуска в очередь из кода
Разработка заданийПередача данных, ошибки, возврат результата