2016-05-15 15 views
0

Ich folge Ryan Bates Tutorial ActionController Live und Deployment-App auf Heroku. Alles funktioniert gut, außer Veranstaltungen, wo Ryan traurig ist, dass wir die Redis-Verbindung wieder öffnen sollten, und ich kann es nicht tun. Ich verwende RedisToGo, um Redis auf Heroku auszuführen. Hier Controller-Aktion meine Ereignisse:Heroku Redis kann Verbindung nicht öffnen

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 

hier auch redis initializer:

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

Kann mir jemand helfen?

EDIT

bekam ich alle nur den Client statt Parsen Controller-Aktion in Ereignisse, die URI Redis.new(url: ENV["REDISTOGO_URL"]) Initialisierung zu arbeiten.

Antwort

0

diese ersetzen:

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

mit diesem:

REDIS.psubscribe 

überall Sie haben 'redis' oben, ersetzen mit dem REDIS global.

+0

Das löst das Problem nicht, Ereignis ist nicht aufgetreten, kein Fehler aufgetreten – jealrockone

+0

Sie haben, dass REDIS = Redis.new in Ihrer Konfig/Initialisierer irgendwo, richtig? – court3nay

+0

nein, nur das REDIS = Redis.new (: url => uri) – jealrockone

Verwandte Themen