2011-10-28 6 views
2

最近私はherokuインスタンスに虚栄心を使ってA/Bテスト実験を展開しました。私はダッシュボード、すなわちにアクセスするたびしかし、/化粧次のエラーが虚栄心を使用しないHeroku to Heokuサーバー

- ActionView::Template::Error (Connection refused - Unable to connect to Redis on 127.0.0.1:6379): 
-  1: <ul class="experiments"> 
-  2: <% experiments.sort_by { |id, experiment| experiment.created_at }.reverse.each do |id, experiment| %> 
-  3:  <li class="experiment <%= experiment.type %>" id="experiment_<%=vanity_h id.to_s %>"> 
-  4:  <%= render :file => Vanity.template("_experiment"), :locals => { :id => id, :experiment => experiment } %> 
-  5:  </li> 
- 

しかし、ログに表示、URLに行くのRedisは正しく設定されているようだと虚栄心がそれにアクセスすることができるように思わ 例えば

irb(main):011:0> Vanity.playground.connection 
=> redis://bluegill.redistogo.com:9231/0 

誰かが間違っていることを知っていますか?

my vanity.rb config file is fairly standard 

    development: 
     adapter: redis 
     connection: redis://localhost:6379/0 
    qa: 
     adapter: redis 
     connection: <%= ENV["REDISTOGO_URL"] %> 
    staging: 
     adapter: redis 
     connection: <%= ENV["REDISTOGO_URL"] %> 
    production: 
     adapter: redis 
     connection: <%= ENV["REDISTOGO_URL"] %> 

ともENV [「REDISTOGO_URL」]正しい

irb(main):012:0> ENV["REDISTOGO_URL"] 
=> "redis://redistogo:[email protected]:9231/" 

ようで、私はアプリの残りの部分からのRedisにアクセスすることができ、それだけで虚栄心は、このテンプレートのためにそれを拾っていないようです..

答えて

3

私はこれを考え出しました。私たちがunicornでフォークするとき、私は正しいredis serverに再接続せず、代わりにlocalhostにデフォルト設定していました。 unicorn.rbのこのコードスニペットは、それをソートします。

after_fork do |server, worker| 
    # the following is *required* for Rails + "preload_app true", 
    ActiveRecord::Base.establish_connection 
    Vanity.playground.establish_connection(ENV["REDISTOGO_URL"]) 
end 

他のフォークサーバーでも同様です。

+0

この行はおそらくもっと頑強かもしれません。Vanity.playground.reconnect!もしVanity.playground.collecting? – reillyse

+0

既存の$ redis接続オブジェクトを使用するようにVanityにどのように伝えますか?私のアプリはRedisを使用し、Redisは10接続の制限があります。私は3人の労働者と2人のdynosを持つUnicornを持っているので、それは私のアプリケーションのための6つの接続です。バニティが接続しようとすると、別の6を使い切ります!それは合計で12ですが、利用できるのはわずか10です。私は既存の$ redisオブジェクトを渡して、それを接続に使用したいと思います。 – Chloe

関連する問題