我在Heroku上托管的生产网站上使用Sidekiq和Redis To Go。我正在调动多名Sidekiq工人为我做一份工作。在600名工人中,我得到了大约180名工人,在我的工人得到工作之前,他们被困在了#34;他们试图做一份工作,我收到了两个错误之一:
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~工人会成功,然后最后200名工人被困在这个重试循环中并且会出现连续错误?
答案 0 :(得分:0)
RedisToGo是一个共享主机redis作为服务提供商。不幸的是,很容易用太多的客户端连接压倒你的共享redis实例,导致超时。
您实际上是在调试redis主机和RedisToGo的基础结构。
您可能需要升级到更大的计划或更强大的托管,以支持您想要的连接数量。