CrontabManager - работа из под console ssh

Упростил работу с дополнением CrontabManager

Теперь можно создавать задания для автоматического запуска как из контроллеров-команд, так и из обычных сниппетов, а также запускать их через командную строку SSH.


Пример получения списка доступных команд:
php core/scheduler/artisan list



Полный список команд доступен по ссылке: Command

Создать свою команду

Выполняем
php core/scheduler/artisan command:create --name=MyCommand
Команда для запуска
php core/scheduler/artisan mycommand --arg_name=water
Расположение файла
core/scheduler/Controllers/MyCommand.php


Веб-интерфейс



Добавить задание — контроллер


Будет создан файл **core/scheduler/Controllers/Example.php**.



Команда для запуска:
php core/scheduler/artisan example

Пример передачи аргументов:
php core/scheduler/artisan example --name=water



Добавить задание — сниппет


Создайте сниппет, который будет запускаться автоматически, и привяжите его к крон-заданию.



Команда для запуска:
php core/scheduler/artisan snippet --snippet="Crontab1"

Можно запускать любые сниппеты:
php core/scheduler/artisan snippet --snippet="Super"

На вкладке «Настройки»


Можно добавить общую задачу в крон через кнопку, либо, если крон недоступен, следуя инструкции.



Общая задача так же доступна для запуска из под консоли
php core/scheduler/artisan schedule:list              # Список задач с временем и статусом
php core/scheduler/artisan schedule:run             # Запускает текущие задачи если время наступило
php core/scheduler/artisan schedule:work           # Делает тоже что и schedule:run с перезапуском каждую минуту

Статус крон задания


Статус выполнения скрипта отслеживается в режиме реального времени с использованием PID в Linux. Благодаря этому в админке можно увидеть, что скрипт находится в процессе исполнения.



Конструктор кронов


Добавлен удобный и понятный конструктор для настройки cron-заданий






Документация пока еще публикуется на docs.modx.pro и будет доступна по ссылке: https://docs.modx.pro/components/crontabmanager/

CrontabManager на ModStore
Андрей Степаненко
04 декабря 2024, 18:32
modx.pro
1
430
+11
Поблагодарить автора Отправить деньги

Комментарии: 6

cronAbs
06 декабря 2024, 14:06
0
Здравствуйте, хотели опробовать, но при установке пакета ошибка:
[CronTabManager] Не удалось найти политику доступа CronTabManagerPolicy!

При этом пакет успешно установлен:


Печалька. Политика доступа не создалась.

MODX Revolution 2.8.3-pl
    Кирилл
    11 февраля 2025, 23:24
    0
    круто, больше нравится чем CronManager, хорошо проделанная работа)

    Может стоит добавить в _ctma_task_log поле text? Чтобы иметь возможность сохранять каждый лог, а не только данные по последнему логу и на диске?
    1) и конечно же читать каждый лог отдельно в задании
    2) вкладку где будут все логи по всем заданиям
      Андрей Степаненко
      12 февраля 2025, 09:41
      0
      Подумаю как можно сделать.
      Но на самом деле это очень плохая практика хранить по каждому результату логи
      Нарушит работу сайта 100%
      Быстро место закончиться на диске или база засориться.

      Может быть на s3 хранение, вот этот вариант куда круче и с местом не будет проблем никогда. Доступ хоть откуда будет.
        Кирилл
        13 февраля 2025, 09:47
        0
        не совсем конечно о каком размере логов вы подумали, но у меня там минимум данных)
        ну или может текущий вариант расширить с файлом, чтобы не только последний лог хранило, но и предыдущие:)
        спасибо
          Андрей Степаненко
          13 февраля 2025, 16:29
          0
          Попробуйте ошибку специально в коде совершить, обьем логов вырастить совсем на чучуть))

          Чисто для понимания проэкспементируйте
      Кирилл
      16 февраля 2025, 00:50
      0
      Заметил баг, если установлен controlErrorLog или modalConsole, то на странице CronTabManager они не работают.
      PR отправил github.com/astra-modx/modx-app-crontabmanager/pull/2
        Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
        6