【问题标题】:Rails Spring configuration similar like in Zeus?Rails Spring 配置类似于 Zeus 中的配置?
【发布时间】:2026-02-09 11:25:02
【问题描述】:

我在 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

宙斯配置:

{
    "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,但我不完全了解如何运行和停止我的自定义 rake 任务。

我试试这样的:

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 并没有关闭。

这是在春季运行和停止自定义 rake 的一些聪明的解决方案吗?

谢谢

【问题讨论】:

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


    【解决方案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
    

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

    【讨论】: