【发布时间】:2014-04-27 19:06:08
【问题描述】:
我在 Heroku 上托管的生产站点上使用 Sidekiq 和 Redis To Go。我正在召集多名 Sidekiq 工人为我做一份工作。在我的工人“卡住”之前,在 600 名工人中,我只剩下大约 180 名工人。他们试图做一份工作,但我得到了两个错误之一:
WARN: {"retry"=>true, "queue"=>"default", "class"=>"F9LoadRecordWorker", "args"=>[25126], "jid"=>"0426e1db817e27986da6b636", "enqueued_at"=>1395332988.09929, "error_message"=>"Connection reset by peer - SSL_connect", "error_class"=>"Errno::ECONNRESET", "failed_at"=>1395337905.5061884, "retry_count"=>0}
或
WARN: {"retry"=>true, "queue"=>"default", "class"=>"F9LoadRecordWorker", "args"=>[25131], "jid"=>"79601ea488efc10f1fbcc433", "enqueued_at"=>1395332988.1172419, "error_message"=>"Connection refused - connect(2)", "error_class"=>"Errno::ECONNREFUSED", "failed_at"=>1395338127.4794347, "retry_count"=>1, "retried_at"=>1395338202.905867}
因此,实际的错误是对等方重置连接 - SSL_connent 或拒绝连接 - 连接 (2)。
这是什么原因造成的?为什么 400~ 个 worker 会成功,然后最后 200~ 个会卡在这个重试和不断出错的循环中?
【问题讨论】:
标签: ruby-on-rails ruby heroku redis sidekiq