0
我打一个外部服务,做一些密码加密并返回几件事情。从连接重置救援由对等错误重试
现在,如果我要生成50个密码,我们在一个循环中运行该功能的50倍
def self.encrypt_password(password)
retries = 2
uri = URI
params = Base64.encode64(password)
uri.query = URI.encode("Source=#{params}")
begin
retries.times.each do
res = Net::HTTP.get_response(uri)
if res.is_a?(Net::HTTPSuccess)
obj = JSON.parse(res.body)
pw = Base64.decode64(obj["Data"])
ps = Base64.decode64(obj["Key"])
pws = Iconv.iconv('ascii', 'utf-16', pws)
return pwe,pws[0]
end
end
rescue
raise "Error generating pws: #{$!}"
end
end
但问题,我遇到的是,有些时候该服务仅返回在下面的错误一个循环,并退出的中间:
我的问题是如何从救援“由同行的错误连接复位”错误并重试几次而不会破坏程序的流程?
或者可以有人推荐替代解决方案来解决我的问题吗?
注:我使用的轨道2和Ruby 1.8.x的
如何如果出现该错误不,我只重试吗? – Micheal 2015-04-03 17:44:47
救援块允许按异常类型过滤,将其添加到答案代码 – 2015-04-03 18:32:52