2016-05-15 3 views
0

私はRyan BatesチュートリアルのActionController Liveとherokuでアプリをデプロイしています。イベントを除いて、すべてうまくいきます。私たちは赤いつながりを再開すべきだと悲しいことがありました。私はそれをやりません。私はRedisToGoを使って英雄に赤字を実行します。 ここに私のイベントコントローラのアクション:Heroku Redis cant open connection

def events 
    response.headers["Content-Type"] = "text/event-stream" 
    redis = Redis.new(:url => uri) 
    redis.psubscribe('messages.*') do |on| 
     on.pmessage do |pattern, event, data| 
      response.stream.write("event: #{event}\n") 
      response.stream.write("data: #{data}\n\n") 
     end 
    end 
    rescue IOError 
     logger.info "Stream closed" 
    ensure 
     redis.quit 
     response.stream.close 
end 

はまたここにRedisの初期化子:

uri = URI.parse(ENV["REDISTOGO_URL"]) 
REDIS = Redis.new(:url => uri) 

誰かが私を助けることができますか?

EDITは、私はすべてがちょうどRedis.new(url: ENV["REDISTOGO_URL"])を使用してクライアントを初期化する代わりに、URIのイベントでのコントローラのアクションを解析動作するようになりました。これで

redis = Redis.new(:url => uri) 
redis.psubscribe 

REDIS.psubscribe 

どこにRedisのグローバルと交換し、上記の 'Redisの' を持っている

答えて

0

はこれを交換してください。

+0

これは問題を解決しません。イベントは起こらず、エラーは発生しません。 – jealrockone

+0

あなたはあなたの設定/初期化子のどこかでREDIS = Redis.newを持っていますか? – court3nay

+0

いいえ、このREDIS = Redis.new(:url => uri)のみ – jealrockone

関連する問題