将 Rails 引擎添加到 Procfile?
Add Rails Engine to Procfile?
期望的场景是 运行 在部署到 Heroku 时在一个或多个单独的 dyno 上的引擎。 Procfile 看起来像:
web: bundle exec rails server -p $PORT
worker: bundle exec rake jobs:work
engine: TODO
这样我们就可以轻松地缩放引擎使用的测功机:heroku ps:scale engine=3
这可能吗?
这里回答了这个问题:https://groups.google.com/forum/#!topic/components-in-rails/zQTLPZGqIaI
最终听从了 Enrico Teotti 对此 post 的建议:http://teotti.com/feature-flagging-portions-of-your-ruby-on-rails-application-with-engines/
基本上我们需要标记我们的引擎。在 routes.rb
:
Rails.application.routes.draw do
case ENV['APP_RUNNING_MODE']
when 'my_engine'
mount MyEngine::Engine => "/my_engine"
else
# rest of the routes...
end
end
Procfile
看起来像:
web: bundle exec rails server -p $PORT
worker: bundle exec rake jobs:work
engine: APP_RUNNING_MODE=my_engine bundle exec rails server -p $PORT
期望的场景是 运行 在部署到 Heroku 时在一个或多个单独的 dyno 上的引擎。 Procfile 看起来像:
web: bundle exec rails server -p $PORT
worker: bundle exec rake jobs:work
engine: TODO
这样我们就可以轻松地缩放引擎使用的测功机:heroku ps:scale engine=3
这可能吗?
这里回答了这个问题:https://groups.google.com/forum/#!topic/components-in-rails/zQTLPZGqIaI
最终听从了 Enrico Teotti 对此 post 的建议:http://teotti.com/feature-flagging-portions-of-your-ruby-on-rails-application-with-engines/
基本上我们需要标记我们的引擎。在 routes.rb
:
Rails.application.routes.draw do
case ENV['APP_RUNNING_MODE']
when 'my_engine'
mount MyEngine::Engine => "/my_engine"
else
# rest of the routes...
end
end
Procfile
看起来像:
web: bundle exec rails server -p $PORT
worker: bundle exec rake jobs:work
engine: APP_RUNNING_MODE=my_engine bundle exec rails server -p $PORT