Я создал крошечную библиотеку, соединяющую Rails и Digdag


Что это такое?

Я создал крошечную библиотеку, соединяющую Rails и Digdag.
Теперь доступна библиотека «mogura».

Для чего она используется?

Задачи Rake — это способ управления пакетами в Rails.
Однако пакетная обработка имеет тенденцию раздувать кодовую базу и увеличивать эксплуатационные расходы.

В некоторых случаях внедрение профессионального инструмента Python ETL, такого как Airflow, может стать препятствием для обучения/строительства/эксплуатации/расходов или найма персонала.
Кроме того, переписать доменную логику, связанную с Rails, содержащуюся в задачах Rake, в виде микросервисов на Python часто не представляется реальной возможностью.
Может возникнуть потребность включить механизм документооборота в Rails-приложение.

Я искал способ использовать доменную логику Rails-приложения и при этом удовлетворить требования механизма документооборота.
И я пришел к варианту создания крошечной библиотеки, соединяющей Rails и Digdag.

Использование

Добавьте следующее в Gemfile вашего проекта Rails и bundle install.

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

Когда библиотека будет установлена, попробуйте выполнить следующую команду в корневом каталоге вашего проекта Rails

$ bundle exec mogura help
Commands:
  mogura help [COMMAND] # Describe available commands or one specific command
  mogura init # Initialize Digdag files
  mogura push # Push Digdag workflows
  mogura version # Prints version
Войти в полноэкранный режим Выйти из полноэкранного режима

bundle exec mogura init создаст следующие файлы в вашем проекте Rails

RAILS_ROOT/config/digdag/sample.dig
RAILS_ROOT/app/dags/sample_dag.rb
Войти в полноэкранный режим Выйти из полноэкранного режима
_export:
  rb:
    require: {{ RAILS_ROOT }}/config/environment
+run:
  rb>: SampleDag.run
Войти в полноэкранный режим Выйти из полноэкранного режима
class SampleDag
  def run
    puts "Hello Rails #{Rails.env}"
  end
end
Войти в полноэкранный режим Выход из полноэкранного режима

Команда bundle exec mogura push зарегистрирует sample.dig в Digdag.
Загрузив среду Rails из Digdag внутрь sample.dig, вы сможете вызывать свою доменную логику Rails из рабочего процесса.

Спасибо за прочтение!

В настоящее время только один проект Digdag может быть зарегистрирован как рабочий процесс, но я думаю, что было бы лучше, если бы можно было регистрировать несколько проектов Digdag.
Кроме того, в настоящее время эта библиотека позволяет выполнять операции с Digdag только из CLI, но я хотел бы иметь возможность регистрировать и редактировать рабочие процессы из вашей доменной логики Rails-приложения.
И я активно ищу отзывы или вклад в эту библиотеку, не стесняйтесь, если у вас есть идеи по добавлению новой функциональности! 🙂

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