2016-07-09 2 views
1

Я новичок Rails dev, создающий приложение, связанное с redis + sidekiq. У меня должна быть некоторая ошибка конфигурации, но я не уверен, что это такое. Ниже я напишу о том, что именно меня смущает здесь:SocketError at/sidekiq/getaddrinfo: nodename или servname предоставлено или неизвестно

После рельсов с, я получаю следующее сообщение об ошибке:

2016-07-09 08:55:46 - SocketError - getaddrinfo: nodename nor servname provided, or not known: 
/Users/rohitrekhi/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/redis-3.3.0/lib/redis/connection/ruby.rb:177:in `getaddrinfo' 
/Users/rohitrekhi/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/redis-3.3.0/lib/redis/connection/ruby.rb:177:in `connect' 
/Users/rohitrekhi/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/redis-3.3.0/lib/redis/connection/ruby.rb:260:in `connect' 
/Users/rohitrekhi/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/redis-3.3.0/lib/redis/client.rb:336:in `establish_connection' 

Так что я решил, что это должно быть ошибкой соединения Redis. Когда я пинг Redis, чтобы увидеть, если подключение идет через, он показывает следующее:

$ redis-cli ping 
=> PONG 

Таким образом, если соединение Redis проходит, может быть, это вопрос Sidekiq?

Я реализовал веб-интерфейс Sidekiq через Синатры, и получил следующее сообщение об ошибке, когда я попытался его просмотра:

SocketError at /sidekiq/ 
getaddrinfo: nodename nor servname provided, or not known 

Так что теперь я предполагаю, что ошибка на самом деле через Sidekiq, но я не где я бросил мяч через конфигурации на хосте/сервере/сокетах. Любые идеи, что именно вызывает это, и если это ошибка с Sidekiq или redis?

Это мой файл инициализации для sidekiq в конфигурации/инициализаторах/sidekiq.rb:

Sidekiq.configure_server do |config| 
config.redis = { url: 'redis://redis.example.com:6379/12', network_timeout: 5 } 
end 

Sidekiq.configure_client do |config| 
    config.redis = { url: 'redis://redis.example.com:6379/12', network_timeout: 5 } 
end 

И это мой конфиг/инициализатор/redis.rb:

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

Я также открыл три окна терминала, включив сервер redis, sidekiq и мой сервер rails.

Заранее благодарен!

ответ

1

Это не имеет никакого смысла:

redis://redis.example.com:6379/12 

У вас нет сервера Redis в этом URL; исправить URL.

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