Sha256: ef5d8166d9b1c13b2da566f124c953988e84f83283ef2d7fc8ec65cf433aa43d
Contents?: true
Size: 919 Bytes
Versions: 12
Compression:
Stored size: 919 Bytes
Contents
class LHC::Retry < LHC::Interceptor attr_accessor :retries, :current_retry class << self attr_accessor :max end def after_response(response) response.request.options[:retries] ||= 0 return unless retry?(response.request) response.request.options[:retries] += 1 current_retry = response.request.options[:retries] begin response.request.run! rescue LHC::Error return end response.request.response if current_retry == response.request.options[:retries] end private def retry?(request) return false if request.response.success? return false unless request.options.dig(:retry) request.options[:retries] < max(request) end def max(request) options(request).is_a?(Hash) ? options(request).fetch(:max, LHC::Retry.max) : LHC::Retry.max end def options(request) @options ||= request.options.dig(:retry) end end LHC::Retry.max = 3
Version data entries
12 entries across 12 versions & 1 rubygems