CronTabManager

Управление crontab задания из modx
Бесплатно
Загрузите дополнение из админки вашего сайта.
Как загрузить?
Автор дополнения
Андрей Степаненко
Пакетов
30
Закачек
4 713
Автор дополнения
Пакетов
30
Закачек
4 713
Версия 2.1.0-pl
Дата выпуска 31.08.2021
Загрузки 160
Просмотры 1 956
Внимание, этот компонент требует версию PHP 7.2 или выше! Если ваш сайт использует PHP ниже требуемого, установка этого дополнения может его сломать.
Внимание, этот компонент требует версию MODX не ниже 2.6 !
Компонент представляет из себя полноценный набор классов для управления крон заданиями, по мимо того что он умеет записывать крон задания напрямую в crontab (можно проверить это на modhost.pro) он так же позволяет:

Уникальный функционал по запуск PhpUnit тестов прям из контроллеров. Смотреть репазиторий github.com/webnitros/CronTabManager

  • Вести логи запусков
  • Отслеживать ошибки не завершенных заданий
  • Читать логи
  • Уведомлять администраторов о проблемах запусков заданий на email
  • Имеет уже встроенный набор классов для создания новых заданий (новое задание создается как контроллер для RESTfuil)
  • Позволяет запускать задание из админки точно так же как бы мы запускали его из под ssh пользователя

В настройка компонента есть параметр: crontabmanager_handler_class он принимает два класса:
CrontabManagerHandler — записывает задания в crontab
CrontabManagerHandlerFile — записывать задания в файл (которые нужно будет переносить в ручную)

класс CrontabManagerHandler может не работать на большинстве хостингов так как возможно много ограничений препятствовать этому.

Для полноценного теста компонент можно попробовать на modhost.pro, так как там разрешена запись задания напрямую в crontab из под веб пользователя.

Все контроллеры крон заданий хранятся в директории:
core/scheduler/Controllers/

Демонстрация как работает задания вы можете увидеть перейдя в админку


Это задание запускает контроллер demo.php, путь к контроллеру
core/scheduler/Controllers/demo.php


Внимание!!! класс контроллера должен напрямую совпадать с именем файла контроллера


То есть ваше имя класса контроллере всегда должено начинаться с
CrontabController[ТУТ ПИШЕМ путь до файла относительно папки core/scheduler/Controllers/]

Что такое контроллеры?


Если вы пользовались когда то RESTfuil то для вам не составит труда разобрать как работаю контроллеры. Создаются и запускаются контроллеры по тому же принципу.

Если чуть подробней: когда вы включаете контроллер то автоматически создается карта контроллеров c ссылками на их запуск:


Обсуждение в сообществе

2.1.0-pl

  • Игнорирование файлов логов для git
  • Добавление поддержки аргументов: "../task.php user=1" $this->service->getArgs() получим массив ["user":1]
  • Добавление поля для аргументов в консоль запуска задания с фронта
  • Исправление сортировки
  • Сброс выбранной категории
  • Исправлена кнопка сброса поиска