通过对等方重设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)中,然后再重试。