通过对等方重设Ruby连接 - SSL_connect(Errno :: ECONNRESET)

问题描述:

以下代码将始终以#<Errno::ECONNRESET: Connection reset by peer - SSL_connect>错误消息结尾。通过对等方重设Ruby连接 - SSL_connect(Errno :: ECONNRESET)

5秒后或30分钟后可能会失败。

require 'net/https' 

http = Net::HTTP.new('newproduct.zendesk.com', 443) 
http.use_ssl = true 

req = Net::HTTP::Head.new('/') 

while true 
    res = http.start { http.request(req) } 
end 

它发生在Mac和Linux上运行,并导致我的批处理作业失败。

它似乎很难调试,但有什么我应该寻找的东西吗?

ECONNRESET是一个套接字错误,指示连接的另一端(在这种情况下,Zendesk)突然终止连接。可能是他们的网络错误,或者你和Zendesk之间的网络错误。

我在使用Zendesk gem进行红宝石时,每隔几百次调用中就有一次出现同样的错误。

对我而言,解决这些错误的方法是将不成功的API调用参数存储在数组(或文件或Redis)中,然后再重试。