Подтвердить что ты не робот

Развертывание redis для heroku неспособно подключиться

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

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

i затем читайте и следуйте http://blog.redistogo.com/2010/07/26/resque-with-redis-to-go/

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

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 используя add from from 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 gui, а также конфигурацию heroku, что мой номер порта - 9254

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

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

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

i зафиксировал его. я не могу в это поверить! мое полное решение

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

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

4b9b3361

Ответ 1

Для моей настройки у меня есть /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)

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

heroku config --app my_app

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

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

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

  • Убедитесь, что у вас есть URL-адрес REDIS_TO_GO в вашей конфигурации heroku из командной строки, как показано выше.
  • Убедитесь, что URL-адрес REDIS_TO_GO идентичен URL-адресу, присвоенному этому экземпляру в конфигурации Add Ons → Redis To Go.

Ответ 2

i зафиксировал его. я не могу в это поверить! мое полное решение

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

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

Ответ 3

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

heroku config:set REDIS_PROVIDER=REDISCLOUD_URL

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