Sha256: 69b8a252abb22f3874d2a332b21f23662406c9ef4be965063a6c2059a55d823d
Contents?: true
Size: 1.22 KB
Versions: 3
Compression:
Stored size: 1.22 KB
Contents
module Shutl class << self def notifier_klass= klass NetworkRetry.notifier_klass = klass end def notifier_klass NetworkRetry.notifier_klass end delegate :notify, to: :notifier_klass end module NetworkRetry def retry message= "Notice: Network Exception", default=nil Retriable.retriable(retry_settings) { yield } rescue *network_exceptions => e notifier_klass.notify(e, error_message: message) default end attr_writer :notifier_klass def notifier_klass @notifier_klass ||= Airbrake end private def network_exceptions [ Timeout::Error, Errno::ECONNREFUSED, EOFError, Net::HTTPBadResponse, Errno::ETIMEDOUT, Faraday::TimeoutError, Faraday::ConnectionFailed, Faraday::ParsingError, Faraday::SSLError ] end def retry_settings options = {} interval = options[:sleep] || (test_mode ? 0 : 1) {on: network_exceptions, tries: 3, interval: interval}.merge options end #override based on environment def test_mode false end class << self delegate :retry_connection, to: NetworkRetry end extend self end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
shutl_auth-0.9.3 | lib/shutl/network_retry.rb |
shutl_auth-0.9.2 | lib/shutl/network_retry.rb |
shutl_auth-0.9.1 | lib/shutl/network_retry.rb |