2012-05-18 4 views
18

ive пытался получить resque для работы с heroku. я могу успешно заставить его работать в режиме разработки, однако, когда я пытаюсь нажав на Heroku я получитьразвертывание redis для heroku не удалось подключиться

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

я потом прочитал и последовал http://blog.redistogo.com/2010/07/26/resque-with-redis-to-go/

я поставил конфигурации, перечисленные на сайте, но получил следующее сообщение об ошибке

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

я положил в моем инициализаторах/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) 

однако он выдает ошибку, упомянутую выше. в моем режиме dev теперь я также получаю ошибку.

Я попытался использовать свое имя пользователя heroku (im, используя добавление от heroku), поместив мой пароль в heroku и изменив порт на 9254. Однако я продолжаю получать сокетную ошибку сейчас. Что я делаю не так?

справка была бы очень признательна. спасибо

UPDATE.

@kevin

я попытался

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

в инициализатора/redis.rb как хорошо, но я получаю следующую ошибку

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

являются цифры в погрешности, то есть 127,0 .0.1: 6379 значительный? Ive проверил мой REDIS графический интерфейс приложения, а также из Heroku конфигурации, что мой номер порта 9254

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

ли у Вас какие-либо другие параметры конфигурации? Спасибо за помощь!

ОКОНЧАТЕЛЬНОЕ ОБНОВЛЕНИЕ.

Я установил его. я не могу в это поверить! мое полное решение:

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

дословно. она работает без явного задания URL-адрес, потому что я думаю, Heroku пытается установить его для меня уже

+1

Последнее обновление заставило его работать на меня. Он должен перейти в 'config/initializers/redis.rb' – pcv

+0

Отлично! Вы спасли мое время. Вы должны отправить свое решение в виде отдельного ответа. – Aray

ответ

38

Для моей установки у меня есть /config/initializers/redis.rb с этими линиями:

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

Мой определяется в моей конфигурации Heroku. Вы должны быть в состоянии подтвердить, что, набрав:

heroku config --app my_app 

Вы увидите на выходе значение для

Вы должны скопировать ваш непосредственно от Redis To Go. Вы найдете его, перейдя к экземпляру в героику и нажав Add Ons -> Redis To Go.

Вот несколько указателей:

  1. Проверьте у вас есть REDIS_TO_GO URL в вашем Heroku конфигурации из командной строки, как я продемонстрировал выше.
  2. Проверьте, что URL-адрес REDIS_TO_GO идентичен URL-адресу, присвоенному этому экземпляру, в настройке Add Ons -> Redis To Go.
+0

yes ive проверено с помощью команды, указанной выше, и мой url соответствует. у вас была другая инициализация для redis? к сожалению, я все еще получаю ошибку Errno :: ECONNREFUSED (Connection failed - Не удалось подключиться к Redis на 127.0.0.1:6379): – Sasha

+0

Позвольте мне уточнить, что в моем вопросе – Sasha

+0

я очень ценю вашу помощь =) – Sasha

14

Я исправил его. я не могу в это поверить! мое полное решение:

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

дословно. он работает без явного указания URL-адреса, потому что я думаю, что герой пытается настроить его для меня уже

11

У меня тоже самое, поэтому в основном Sidekiq не хватал REDISCLOUD_URL от vars, он захватывал REDIS_PROVIDER.

heroku config:set REDIS_PROVIDER=REDISCLOUD_URL 

Он работал как шарм.

+1

Heroku конфигурации: установка REDIS_PROVIDER = REDISTOGO_URL для меня – okysabeni

+0

Смотрите документацию здесь: https://github.com/mperham/sidekiq/wiki/Using-Redis –

+2

Heroku конфигурации: установка REDIS_PROVIDER = REDISTOGO_URL работал для меня тоже (Rails 4) – GhostRider

Смежные вопросы