2011-10-12 15 views
17

He agregado el complemento nano Redistogo en Heroku y lo he probado con éxito en la consola. Sin embargo, cuando mi aplicación intenta conectar con Redis me sale el siguiente error: archivo¿Cómo hacer que Redis comience en Heroku?

Heroku Log:

2011-10-12T08:19:50+00:00 app[web.1]: Errno::ECONNREFUSED (Connection refused - Unable to connect to Redis on 127.0.0.1:6379): 
2011-10-12T08:19:50+00:00 app[web.1]: app/controllers/sessions_controller.rb:14:in `create' 

¿Por qué se intenta acceder a Redis en localhost?

Mi Redis.rb en la carpeta config/initializers tiene esto, que es casi seguro que el problema.

#What's pasted below is pasted ad verbatim. I don't know what to change the values to. 

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

Supongo que ENV ["REDISTOGO_URL"] es localhost? Intenta usar tu URL de dominio heroku para esta variable en producción. –

+1

Heroku establece REDISTOGO_URL cuando agrega el complemento como redis para ir a la URL de la instancia –

+2

Si se establece la URL, ¿por qué debería intentar localhost? – Simpleton

Respuesta

21

¿Estás utilizando Resque? Si es así, deberás decirle a Resque cuál es el uso de Redis.

Resque.redis = REDIS 

Si no es así, entonces el código que ha publicado NO está configurando su conexión REDIS.

+1

Por cierto, puede agregar esta línea al final del archivo de inicialización que se muestra en la pregunta, o simplemente puede reemplazar la variable '' 'REDIS''' con' '' Resque.redis''' en el inicializador para las cosas trabajar. – fholgado

+1

mega pulgares arriba. esta fue la solución a mi problema. es extraño porque utilicé ENV ["REDISTOGO_URL"] no ENV ["my_actual_url_from_heroku"] ​​y funcionó en heroku – Sasha

6

Prueba esto:

heroku config --long | grep REDIS 

a ver lo que sus REDISTOGO_URL es. Puede haberlo configurado accidentalmente.

+2

Prueba a dejar que la gema Redis se ocupe de tu URL: 'Redis.connect (: url => ENV ['REDISTOGO_URL']) ' – Jonathan

+0

gracias. Tu línea me dio la inspiración para ... no escribir algo explícitamente en ENV ["REDISTOGO_URL"] – Sasha

Cuestiones relacionadas