diff --git a/lib/lookup_http.rb b/lib/lookup_http.rb index 432aa8b..feb76f0 100644 --- a/lib/lookup_http.rb +++ b/lib/lookup_http.rb @@ -79,8 +79,22 @@ def get_parsed(path) end end + retries = 0 + retry_limit = @config[:retries] || 3 + retry_interval = @config[:retry_interval] || 1 + begin httpres = @http.request(httpreq) + rescue Errno::ECONNREFUSED, Net::ReadTimeout => e + if (retries += 1) <= retry_limit + retry_sleep = retries * retry_interval + log_debug("Timeout (#{e}), retrying in #{retry_sleep} second(s)...") + sleep(retry_sleep) + retry + else + raise LookupHttp::LookupError, e.message unless @config[:failure] == 'graceful' + return + end rescue Exception => e raise LookupHttp::LookupError, e.message unless @config[:failure] == 'graceful' return