rails-Sidekiq-Redis:RuntimeError(提供了节点名或服务名,或未知)

rails-Sidekiq-Redis : RuntimeError (nodename nor servname provided, or not known)

我正在尝试 运行 一个 Rails 应用程序,使用 Sidekiq w Redis ..

config/initializers/

Sidekiq.configure_server do |config|
  config.redis = { url: 'redis://redis:6379/1', namespace:      'delay_message_dev', driver: :hiredis }
end

Sidekiq.configure_client do |config|
  config.redis = { url: 'redis://redis:6379/1', namespace: 'delay_message_dev', driver: :hiredis }
end

sidekiq-server 正在 运行ning ...

The server is now ready to accept connections on port 6379

在我的 message_controller.rb 中,在 db 中创建消息后,我 运行

DelayMessageWorker.perform_at(@message[:delay_until_time], @message[:id])

我的 DelayMessageWorker class 是

class DelayMessageWorker
  include Sidekiq::Worker

  def perform(*args)

    # Get the message object
    message = Message.find(message_id)

    # Send an email
    MessageMailer.delay.default(message.recipient_email, message.text)

    # Change the status of the Message object to `sent`
    message.sent = true
    message.save  
  end
end

然而 运行在开发模式下在本地主机上,我得到

(0.2ms) 开始交易 SQL (0.5ms) INSERT INTO "messages" (3.0ms) 提交事务 (3.0 毫秒)提交事务
在 393 毫秒内完成 500 个内部服务器错误(ActiveRecord:3.7 毫秒)

RuntimeError(提供了节点名或服务名,或未知): app/controllers/messages_controller.rb:34:在block in create' app/controllers/messages_controller.rb:31:in创建'

消息写在数据库中,所以错误来自 Sidekiq-Redis ?
感谢建议

更新

我修改了 sidekiq.rb 初始化程序以获得正确的 redis 主机

redis = YAML::load(File.open("#{ Rails.root }/config/redis.yml"))[::Rails.env]

Sidekiq.configure_server do |config|
  config.redis = { url: "redis://#{ redis['host'] }:#{ redis['port'] }/0", namespace: 'delay_message_dev', driver: :hiredis }
end

Sidekiq.configure_client do |config|
  config.redis = { url: "redis://#{ redis['host'] }:#{ redis['port'] }/0", namespace: 'delay_message_dev', driver: :hiredis }
end

听起来主机名 redis DNS 查找失败。