Конфигурация 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
если существует и запустите его снова. Если вы найдете лучшее решение, дайте мне знать, чтобы комментировать. Благодарю.