2012-05-18 15 views
18

ich habe versucht, resque zu arbeiten mit heroku. ich kann es erfolgreich erhalte im Entwicklungsmodus zu arbeiten, aber wenn ich zu Heroku versuchen schieben ideploying redis to heroku kann nicht verbunden werden

Errno::ECONNREFUSED (Connection refused - Unable to connect to Redis on 127.0.0.1:6379): 

bekomme ich dann gelesen und befolgt http://blog.redistogo.com/2010/07/26/resque-with-redis-to-go/

i die Konfigurationen in der Website aufgeführt setzen, aber bekam die folgenden Fehler

SocketError (getaddrinfo: nodename nor servname provided, or not known): 

ich habe in meinem initializers/resque.rb

Resque.after_fork = Proc.new { ActiveRecord::Base.establish_connection } 

ENV["redis://redistogo:[email protected]:9254/"] ||= "redis://heroku_username:[email protected]:9254/" 
uri = URI.parse(ENV["redis://redistogo:[email protected]:9254/"]) 
Resque.redis = Redis.new(:host => uri.host, :port => uri.port, :password => uri.password) 

jedoch löst es den oben genannten Fehler aus. In meinem Dev-Modus bekomme ich jetzt auch den Fehler.

Ich versuchte mit meinem Heroku-Benutzernamen (ich benutze das Add-on von Heroku), setzen mein Passwort zu Heroku, und ändern Sie den Port zu 9254. aber ich bekomme immer noch den Socket-Fehler. Was mache ich falsch?

Hilfe würde sehr geschätzt werden. danke

UPDATE.

@ Kevin

ich versuchte

uri = URI.parse(ENV["my_url_string"] || "redis://localhost:9254/") 
REDIS = Redis.new(:host => uri.host, :port => uri.port, :password => uri.password) 

in einem initializer/redis.rb als gut, aber ich bekomme die folgenden Fehler

Errno::ECONNREFUSED (Connection refused - Unable to connect to Redis on 127.0.0.1:6379): 

sind die Zahlen in dem Fehler, das heißt 127,0 .0.1: 6379 signifikant? ive geprüft app meine redis gui und auch von Heroku Config, die meine Portnummer 9254

REDISTOGO_URL  => redis://redistogo:[email protected]:9254/ 

haben Sie Einstellungen haben keine andere Konfiguration ist? Danke fürs Helfen!

ENDGÜLTIGES UPDATE.

ich reparierte es. Ich kann es nicht glauben! Meine komplette Lösung ist

wörtlich. es funktioniert, ohne die URL explizit einstellen, weil ich denke, Heroku versucht, es für mich schon Ich habe

+1

Das letzte Update hat es für mich funktioniert. Es sollte zu 'config/initializers/redis.rb' gehen. – pcv

+0

Großartig! Du hast meine Zeit gerettet. Sie sollten Ihre Lösung als separate Antwort veröffentlichen. – Aray

Antwort

38

Für mein Setup einzurichten /config/initializers/redis.rb mit diesen Zeilen:

uri = URI.parse(ENV["REDISTOGO_URL"] || "redis://localhost:6379/") 
REDIS = Redis.new(:host => uri.host, :port => uri.port, :password => uri.password) 

Mein in meiner Heroku Konfiguration definiert ist. Sie sollten das validieren können, indem Sie eingeben:

heroku config --app my_app 

Sie in der Ausgabe für den Wert sehen werden

sollten Sie kopieren Ihre direkt von Redis zu gehen. Sie finden es in der Instanz in Heroku und klicken Sie auf Add Ons -> Redis To Go.

Hier sind ein paar Hinweise:

  1. Überprüfen Sie Ihre REDIS_TO_GO URL in Ihrem Heroku Config von der Kommandozeile haben, wie ich oben gezeigt habe.
  2. Überprüfen Sie, ob die URL von REDIS_TO_GO mit der identisch ist, die dieser Instanz in der Konfiguration von Add Ons -> Redis To Go zugewiesen wurde.
+0

Ja, ich überprüfe den Befehl, den Sie oben angegeben haben, und meine URL stimmt überein. Hattest du eine andere Initialisierung für Redis? Leider erhalte ich immer noch den Fehler Errno :: ECONNREFUSED (Verbindung verweigert - Verbindung mit Redis auf 127.0.0.1:6379 nicht möglich): – Sasha

+0

Lassen Sie mich das in meiner Frage – Sasha

+0

aktualisieren Ich schätze Ihre Hilfe sehr =) – Sasha

14

ich reparierte es. Ich kann es nicht glauben! Meine komplette Lösung ist

wörtlich. es funktioniert, ohne explizit die URL zu setzen, weil ich denke, Heroku versucht, es für mich bereits

11

Ich habe das gleiche, also im Grunde Sidekiq war nicht greifen die REDISCLOUD_URL von Vars, es war REDIS_PROVIDER ergreifend.

heroku config:set REDIS_PROVIDER=REDISCLOUD_URL 

Es funktionierte wie ein Charme.

+1

Heroku config: set REDIS_PROVIDER = REDISTOGO_URL für mich die Dokumentation – okysabeni

+0

Siehe hier: https://github.com/mperham/sidekiq/wiki/Using-Redis –

+2

Heroku config: set REDIS_PROVIDER = REDISTOGO_URL auch für mich gearbeitet (Rails 4) – GhostRider

Verwandte Themen