Resque: "SocketError - getaddrinfo: nombre o servicio desconocido" en producción

Creado en 12 jun. 2012  ·  4Comentarios  ·  Fuente: resque/resque

Hola,

Recibo el error de título en mi servidor de producción. Lo obtuve y proviene de Resque.redis en lib / resque.rb, y más precisamente @redis. De alguna manera @redis no se inicializa correctamente, así que hice ese parche pirata:

  def self.redis
    if @defined.nil?
      self.redis = Redis.respond_to?(:connect) ? Redis.connect : "localhost:6379"
      <strong i="8">@defined</strong> = true
    else
      return <strong i="9">@redis</strong>
    end
    self.redis
  end

Y funciona. ¿Alguna opinión sobre esto?

Salud,
Ben

Todos 4 comentarios

Me interesaría ver su inicializador de redis / resque.

Aquí tienes:
Redis

$redis = Redis.new(:host => 'localhost', :port => 6379)

Resque

require 'resque'
require 'resque_scheduler'

config = YAML.load_file(Rails.root.join('config', 'resque.yml'))
cron = YAML.load_file(Rails.root.join('config', 'cron.yml'))

# configure redis connection
Resque.redis = config[Rails.env]

# configure the schedule
Resque.schedule = cron

#patch for redis
require File.join(Rails.root, 'lib/resque_redis_fix.rb')

A mí también me sucedió con una aplicación implementada en heroku, pero lo extraño es que funciona en otra aplicación, prácticamente con las mismas configuraciones.

¿Cuál es su URL de redis del archivo resque.yml? Utilizo algo como esto: redis: // usuario: [email protected] : 9005.

Oh Dios ... Acabo de darme cuenta de que este archivo contiene lo siguiente:

development: localhost:6379
staging: localhost:6379
test: localhost:6379
production: production_db_server_address:6379

No es de extrañar que haya funcionado en dev pero no en prod ... Cerraré el problema entonces, perdón por la molestia.

¿Fue útil esta página
0 / 5 - 0 calificaciones