Sidekiq Redis :: CannotConnectError:生产时在127.0.0.1:6379上连接到Redis时出错

时间:2019-03-18 14:36:24

标签: ruby-on-rails ruby redis sidekiq

config / initializers / sidekiq.rb

Sidekiq.configure_server do |config|
   config.redis = { :url => 'redis://192.xxx.xxx.xx:6379/0' }
end

在生产控制台中,当我这样做

ActivationWorker.perform_async(877459)

出现错误

Redis :: CannotConnectError:在127.0.0.1:6379(Errno :: ECONNREFUSED)上连接到Redis时出错

即使打印sidekiq.log

Booting Sidekiq 5.1.3 with redis options {:url=>"redis://192.xxx.xxx.xx:6379/0", :id=>"Sidekiq-server-PID-646"}

2 个答案:

答案 0 :(得分:1)

  

请务必注意,要配置Redis的位置,您需要   必须同时定义Sidekiq.configure_server和   Sidekiq.configure_client块

Straight from the docs

所以还要添加到您的config/initializers/sidekiq.rb

Sidekiq.configure_client do |config|
   config.redis = { :url => 'redis://192.xxx.xxx.xx:6379/0' }
end

文档中的重要提示:

  

注意:配置哈希必须具有符号键。

     

注意:未知参数传递给基础Redis客户端,因此   驱动程序支持的任何参数都可以放在哈希中。

答案 1 :(得分:0)

根据评论,我们知道Redis在单独的服务器上。

Rails服务器

在初始化程序中创建文件:config/initializers/sidekiq.rb

Sidekiq.configure_server do |config|
  config.redis = {
    url: "redis://192.xxx.xxx.xxx:6379/12"
  }
end

Sidekiq.configure_client do |config|
  config.redis = {
    url: "redis://192.xxx.xxx.xxx:6379/12"
  }
end

Redis服务器

  • 编辑/etc/redis/redis.conf
  • 更新您的绑定端口
  • 示例:bind 192.xxx.xxx.xxx
  • 重新启动redis