错误:心跳:sidekiq中的连接丢失(ECONNRESET)

时间:2018-11-15 03:55:36

标签: ruby-on-rails redis ruby-on-rails-5 sidekiq

我试图在Rails 5.2上运行Sidekiq 5.2.2,但是我总是遇到连接丢失错误。以下是我的服务器日志:

# bundle exec sidekiq -q v2_default,2 -q v2_low -e production
TID-2yed0 INFO: Booting Sidekiq 5.2.2 with redis options {:url=>"redis://myserver.lmf979.0001.apse1.cache.amazonaws.com:6379/1", :network_timeout=>7, :id=>"Sidekiq-server-PID-3644"}
TID-2yed0 INFO: Running in ruby 2.3.5p376 (2017-09-14 revision 59905) [x86_64-linux]
TID-2yed0 INFO: See LICENSE and the LGPL-3.0 for licensing details.
TID-2yed0 INFO: Upgrade to Sidekiq Pro for more features and support: http://sidekiq.org
TID-2yed0 INFO: Starting processing, hit Ctrl-C to stop
TID-19spa0 ERROR: heartbeat: Connection lost (ECONNRESET)
TID-xhh1g ERROR: Error fetching job: READONLY You can't write against a read only slave.
TID-xhh1g WARN: Redis::CommandError: READONLY You can't write against a read only slave.
TID-xhh1g WARN: /usr/local/rvm/gems/ruby-2.3.5/gems/redis-4.0.2/lib/redis/client.rb:119:in `call'

这是我的config / initializers / sidekiq.rb

Sidekiq.configure_server do |config|
    config.redis = { url: 'redis://myserver.lmf979.0001.apse1.cache.amazonaws.com:6379/1', network_timeout: 7 }
end

Sidekiq.configure_client do |config|
    config.redis = { url: 'redis://myserver.lmf979.0001.apse1.cache.amazonaws.com:6379/1', network_timeout: 7 }
end

我确认可以对服务器执行PONG操作,但是我不知道为什么sidekiq无法连接。

# rails c production
Running via Spring preloader in process 7372
Loading production environment (Rails 5.2.1)
2.3.5 :001 > require "redis"
 => false 
2.3.5 :002 > redis = Redis.new(url: 'redis://myserver.lmf979.0001.apse1.cache.amazonaws.com:6379/1')
 => #<Redis client v4.0.2 for redis://myserver.lmf979.0001.apse1.cache.amazonaws.com:6379/1> 
2.3.5 :003 > redis.ping
 => "PONG" 
2.3.5 :004 > 

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我只是指向AWS中错误的Redis端点。感谢Pavel Mikhailyuk指出。