2015-11-02 29 views
1

所需的場景是在部署到Heroku時在單獨的測功機或dynos上運行引擎。該Procfile看起來是這樣的:將Rails引擎添加到Procfile?

web: bundle exec rails server -p $PORT 
worker: bundle exec rake jobs:work 
engine: TODO 

這種方式,我們可以通過縮放引擎容易使用的DYNOS:heroku ps:scale engine=3

這可能嗎?

回答

1

這個問題在這裏回答:https://groups.google.com/forum/#!topic/components-in-rails/zQTLPZGqIaI

端了以下從恩里科Teotti對這個職位的建議: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 
+0

非常有趣的解決方案!您是如何設法將同一端口上的兩個Rails服務器公開到外部訪問的?作爲一個方面的評論,如果Procfile的:部分在運行時在環境變量中可用,那麼一個很好的特性就是如此,所以你不需要像在APP_RUNNING_MODE中那樣明確地指定它。保持搖擺! – fagiani

+0

嗨@fagiani對於遲到的回覆感到抱歉。剛剛檢查過,我們使用相同的端口,但在不同的heroku應用程序。 –