Cromtit — асинхронный бегун для выполнения заданий Cron и многое другое


TL;DR

См. раздел «Почему?


Сразу после онлайн-конференции Raku 2022, где я представлял Tomtit, мне пришла в голову идея.

Что если объединить Tomtit с cron-заданиями? Так родился Cromtit…


Итак, встречайте Cromtit — асинхронный запуск cron-заданий для проектов Tomtit:

В двух словах, если у человека много проектов Tomtit, он может запускать их как cron или вручную, используя движок асинхронных заданий Sparky.

Быстрый запуск

Установите

zef install --/test Cromtit 
Войти в полноэкранный режим Выйти из полноэкранного режима

Шаг первый

Определите конфигурацию Cromtit, чтобы описать все возможные задания:

projects:
  rakudo:
    path: ~/projects/rakudo
  r3:
    path: ~/projects/r3tool
    crontab: "30 * * * *"
    action: html-report
    options: --no_index_update
    before:
      -
        name: rakudo
        action: pull install 
Войти в полноэкранный режим Выход из полноэкранного режима

Здесь мы определяем один основной проект — «R3», который запускает тесты черного ящика для Rakudo, собранного из новых коммитов. Перед запуском этого задания выполняется задание зависимости — «Rakudo» — чтобы убедиться, что новый коммит проверен и свежий Rakudo собран, установлен и готов к тестированию.

Шаг второй

Примените конфигурацию:

cromt
Войдите в полноэкранный режим Выход из полноэкранного режима

Этот шаг преобразует конфигурацию Cromtit в сценарии Sparky, и Sparky выполнит свою работу:

  • Убедитесь, что проект «R3» будет выполняться каждые полчаса.

  • Отчеты и журналы доступны через веб-интерфейс Sparky: http://127.0.0.1:4000.

Еще

Конечно, это очень неформальное введение в Cromtit, более подробную информацию можно получить на страницах документации — https://github.com/melezhik/Cromtit.

Чтобы подстегнуть интерес — некоторые моменты, на которые стоит обратить внимание. Cromtit позволяет:

  • Вложенные зависимости заданий, где задание A зависит от задания B, а задание B зависит от задания C и так далее.

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

  • Ручной запуск заданий вместо запуска в стиле cron

Почему?

У вас есть много локальных проектов, которые вы хотите запускать как задания cron, но без стандартной сложности linux cron и с некоторыми функциями, такими как зависимости заданий и html-отчеты.


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

Оцените статью
devanswers.ru
Добавить комментарий