CronTabManager

Управление crontab задания из modx
Бесплатно
Загрузите дополнение из админки вашего сайта.
Как загрузить?
Автор дополнения
Андрей Степаненко
Пакетов
22
Закачек
5 541
Автор дополнения
Пакетов
22
Закачек
5 541
Версия 3.5.2-beta
Дата выпуска 24.04.2023
Загрузки 284
Просмотры 3 921
Внимание, этот компонент требует версию 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 ссылками на их запуск:


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

3.5.0-beta

  • Автоматически перезапуск задания при завершении с ошибкой один раз
  • Автоматическое определения пути до интерпретатора php

3.4.0-beta

  • Внедрение механизм управления уведомлениями через Правила

3.3.0-beta

  • Внедрение механизм управления уведомлениями через Правила

3.1.13-beta

  • Поддержка новых версий MYSQL

3.1.12-beta

  • Исправление бага при сохранении

3.1.10-beta

  • Проверка существования лога

3.1.9-beta

  • Добавлено действие "Копировать путь CLI"
  • При запуске cli можно добавить -d для того чтобы запуск был в режиме разработки

3.1.8-beta

  • Исправление даты автопаузе при периходет в следующий день

Последние обсуждения в сообществе MODX.pro