Конфигурация Rails Spring похожа как у Зевса?

У меня есть что-то вроде этого в пользовательском плане Zeus, где я запускаю несколько рейковых задач:

require 'zeus/rails'

class CustomPlan < Zeus::Rails
  def rots
    `bundle exec rots 1> log/rots.log &`
  end

  def stripe_mock
    `bundle exec stripe-mock-server 1> log/stripe-mock-server.log &`
  end
end

Zeus.plan = CustomPlan.new

И конфиг Зевса:

{
    "command": "ruby -rubygems -r./custom_plan -eZeus.go",

    "plan": {
      "boot": {
        "default_bundle": {
        "development_environment": {
        "prerake": {"rake": []},
        "console": ["c"]
      },
      "test_environment": {
        "test_helper": {"test": ["rspec"]}
      }
    },
    "rots": {},
    "stripe_mock": {}
    }
  }
}

И я нашел эту ссылку: https://github.com/rails/spring, но я не совсем понимаю, как я могу запускать и останавливать свои собственные задачи по рейку.

Я пытаюсь это примерно так:

class CustomPlan
  def initialize
    `bundle exec rots 1> log/rots.log &`
    `bundle exec stripe-mock-server 1> log/stripe-mock-server.log &`
  end
end
CustomPlan.new

Это работает, но когда я останавливаюсь весной spring stop, stripe-mock-server не выключается

Это какое-то умное решение для запуска и остановки пользовательских граблей весной?

Спасибо

1 ответ

Решение

Лучшее решение, которое я придумала на данный момент:

# config/spring.rb
Spring.after_fork do
  `killall -v -9 rots & bundle exec rots 1> log/rots.log &`
  `killall -v -9 stripe-mock-server & bundle exec stripe-mock-server 1> log/stripe-mock-server.log &`
end

Для начала я убью всех rots а также stripe-mock-server если существует и запустите его снова. Если вы найдете лучшее решение, дайте мне знать, чтобы комментировать. Благодарю.

Другие вопросы по тегам