2012-05-18 33 views
18

Próbowałem dostać resque do pracy z Heroku. I może z powodzeniem zmusić go do pracy w trybie rozwoju, jednak gdy próbuję pchania do Heroku ja dostaćwdrażanie redis do heroku nie można połączyć

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

i następnie odczytać i następnie http://blog.redistogo.com/2010/07/26/resque-with-redis-to-go/

Włożyłem konfiguracje wymienione w miejscu, ale mam następujący błąd

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

mogę umieścić w moim 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) 

jednak powoduje to zgłoszenie błędu, o którym mowa powyżej. w moim trybie dewelopera teraz dostaję również błąd.

Próbowałem używać mojej nazwy użytkownika heroku (im przy użyciu dodatku z Heroku), umieszczając moje hasło na Heroku i zmieniając port na 9254. jednak wciąż otrzymuję błąd gniazda. Co ja robię źle?

pomoc byłaby bardzo ceniona. dziękuję

AKTUALIZACJA.

@kevin

próbowałem

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

w inicjatora/redis.rb jak dobrze, ale pojawia się następujący błąd

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

są numery w błąd, czyli 127,0 .0.1: 6379 znaczące? Sprawdziłem moją aplikację redi gui, a także od konfiguracji heroku, że mój numer portu to 9254

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

czy masz jakieś inne ustawienia konfiguracyjne? dzięki za pomoc!

OSTATECZNA AKTUALIZACJA.

Naprawiłem to. nie mogę w to uwierzyć! moje kompletne rozwiązanie to

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

dosłownie. to działa bez jawnie ustawienie url ponieważ myślę Heroku próbuje ustawić go dla mnie już

+1

Ostatnia aktualizacja sprawiła, że ​​zadziałało. Powinien przejść do 'config/initializers/redis.rb' – pcv

+0

Świetnie! Uratowałeś mój czas. Powinieneś opublikować swoje rozwiązanie jako osobną odpowiedź. – Aray

Odpowiedz

38

Dla mojej konfiguracji Mam /config/initializers/redis.rb z tych linii:

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

My jest zdefiniowany w mojej konfiguracji Heroku. Powinieneś być w stanie potwierdzić, że wpisując:

heroku config --app my_app 

Zobaczysz na wyjściu wartość dla

należy skopiować bezpośrednio z Redis To Go. Znajdziesz go, przechodząc do instancji w heroku i klikając Add-on -> Redis To Go.

Oto kilka wskazówek:

  1. Sprawdź masz REDIS_TO_GO URL w Heroku config w wierszu poleceń jakbym wykazano powyżej.
  2. Sprawdź, czy URL REDIS_TO_GO jest identyczny z adresem przypisanym do tej instancji w konfiguracji Add -s - Redis To Go.
+0

tak ive sprawdzone za pomocą powyższego polecenia, a mój adres URL jest zgodny. czy masz inne inicjowanie dla redis? Niestety nadal pojawia się błąd ERRNO :: ECONNREFUSED (odmowa połączenia - nie można połączyć się z Redis na 127.0.0.1:6379): – Sasha

+0

pozwól mi aktualizować, że w moim pytaniu – Sasha

+0

i wiele wdzięczni za pomoc =) – Sasha

14

Naprawiłem to. nie mogę w to uwierzyć! moje kompletne rozwiązanie to

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

dosłownie. to działa bez jawnie ustawienie url ponieważ myślę Heroku próbuje ustawić go dla mnie już

11

mam to samo, więc, w zasadzie Sidekiq nie chwytając REDISCLOUD_URL od Vars, było chwytając REDIS_PROVIDER.

heroku config:set REDIS_PROVIDER=REDISCLOUD_URL 

Zadziałało jak czar.

+1

Heroku config: set REDIS_PROVIDER = REDISTOGO_URL mi – okysabeni

+0

Zobacz tutaj dokumentację: https://github.com/mperham/sidekiq/wiki/Using-Redis –

+2

Heroku config: set REDIS_PROVIDER = REDISTOGO_URL pracował dla mnie zbyt (4) Szyny – GhostRider

Powiązane problemy