
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 |
| Создание задания | Типы заданий, поля, цикл и повторные попытки |
| Планирование задания | Постановка запуска в очередь из кода |
| Разработка заданий | Передача данных, ошибки, возврат результата |
