español ruby-on-rails heroku redis resque

ruby-on-rails - heroku español



Desplegando redis a heroku no se puede conectar (3)

He estado tratando de volver a trabajar para trabajar con Heroku. Puedo lograr que funcione correctamente en modo de desarrollo, sin embargo, cuando intento empujar a Heroku, obtengo

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

Luego leí y seguí http://blog.redistogo.com/2010/07/26/resque-with-redis-to-go/

Puse las configuraciones enumeradas en el sitio pero obtuve el siguiente error

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

Pongo en mis inicializadores / resque.rb

Resque.after_fork = Proc.new { ActiveRecord::Base.establish_connection } ENV["redis://redistogo:[email protected]:9254/"] ||= "redis://heroku_username:heroku_password@host:9254/" uri = URI.parse(ENV["redis://redistogo:[email protected]:9254/"]) Resque.redis = Redis.new(:host => uri.host, :port => uri.port, :password => uri.password)

Sin embargo arroja el error mencionado anteriormente. en mi modo dev ahora, me sale el error también.

Intenté usar mi nombre de usuario de Heroku (estoy usando el complemento de Heroku), poner mi contraseña en Heroku y cambiar el puerto a 9254. Sin embargo, sigo recibiendo el error de socket ahora. ¿Qué estoy haciendo mal?

La ayuda sería muy apreciada. gracias

ACTUALIZAR.

@kevin

Lo intenté

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

en un inicializador / redis.rb también pero obtengo el siguiente error

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

¿Son significativos los números en el error, es decir, 127.0.0.1:6379? Revisé mi aplicación redis gui y también de heroku config que mi número de puerto es 9254

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

¿Tenías otros ajustes de configuración? ¡gracias por ayudar!

ACTUALIZACIÓN FINAL.

Lo arreglé. ¡No puedo creerlo! mi solución completa es

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

literal. funciona sin establecer explícitamente la url porque supongo que Heroku intenta configurarlo para mí ya


Lo arreglé. ¡No puedo creerlo! mi solución completa es

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

literal. funciona sin establecer explícitamente la url porque supongo que Heroku intenta configurarlo para mí ya


Obtuve lo mismo, así que, básicamente, Sidekiq no estaba tomando REDISCLOUD_URL de las variables, sino que estaba tomando REDIS_PROVIDER.

heroku config:set REDIS_PROVIDER=REDISCLOUD_URL

Funcionó a las mil maravillas.


Para mi configuración tengo /config/initializers/redis.rb con estas líneas:

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

Mi REDISTOGO_URL se define en mi configuración de heroku. Deberías poder validar eso escribiendo:

heroku config --app my_app

Verás en la salida el valor para REDISTOGO_URL

Debes copiar tu REDISTOGO_URL directamente desde Redis To Go. Para encontrarlo, vaya a la instancia en heroku y haga clic en Agregar en - - Redis To Go.

Aquí hay un par de punteros:

  1. Verifique que tenga su URL de REDIS_TO_GO en su configuración de heroku desde la línea de comandos como lo he demostrado anteriormente.
  2. Verifique que la URL de REDIS_TO_GO sea idéntica a la asignada a esa instancia en la configuración de complementos -> Redis To Go.