Rails Spring的配置与Zeus类似?

时间:2017-07-19 13:55:04

标签: ruby-on-rails ruby ruby-on-rails-4 zeus rails-spring

我在Zeus自定义计划中有这样的东西,我在那里运行一些rake任务:

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

和Zeus配置:

{
    "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#configuration,但我并不完全明白如何运行和停止我的自定义佣金任务。

我尝试这样的事情:

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 个答案:

答案 0 :(得分:0)

我现在提出的最佳解决方案:

# 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

首先,如果存在,我会杀死所有rotsstripe-mock-server并再次运行它。如果您找到更好的解决方案,请告诉我发表评论。感谢。