class Sunspot::SessionProxy::Retry5xxSessionProxy::RetryHandler
Attributes
search_session[R]
Public Class Methods
new(search_session)
click to toggle source
# File lib/sunspot/session_proxy/retry_5xx_session_proxy.rb, line 10 def initialize(search_session) @search_session = search_session end
Public Instance Methods
method_missing(m, *args, &block)
click to toggle source
# File lib/sunspot/session_proxy/retry_5xx_session_proxy.rb, line 14 def method_missing(m, *args, &block) retry_count = 1 begin search_session.send(m, *args, &block) rescue Errno::ECONNRESET => e if retry_count > 0 $stderr.puts "Error - #{e.message[/^.*$/]} - retrying..." retry_count -= 1 retry else $stderr.puts "Error - #{e.message[/^.*$/]} - ignoring..." end rescue RSolr::Error::Http => e if (500..599).include?(e.response[:status].to_i) if retry_count > 0 $stderr.puts "Error - #{e.message[/^.*$/]} - retrying..." retry_count -= 1 retry else $stderr.puts "Error - #{e.message[/^.*$/]} - ignoring..." e.response end else raise e end end end