Sha256: 5f2a7cba00404dc3b2ab91726b46c515eb8189b9605a2a1ab24779877933fceb

Contents?: true

Size: 581 Bytes

Versions: 26

Compression:

Stored size: 581 Bytes

Contents

# frozen_string_literal: true

module Mihari
  module Mixins
    module Retriable
      #
      # Retry on error
      #
      # @param [Integer] times
      # @param [Integer] interval
      #
      # @return [nil]
      #
      def retry_on_error(times: 3, interval: 10)
        try = 0
        begin
          try += 1
          yield
        rescue Errno::ECONNRESET, Errno::ECONNABORTED, Errno::EPIPE, OpenSSL::SSL::SSLError, Timeout::Error, RetryableError => e
          sleep interval
          retry if try < times
          raise e
        end
      end
    end
  end
end

Version data entries

26 entries across 26 versions & 1 rubygems

Version Path
mihari-4.1.2 lib/mihari/mixins/retriable.rb
mihari-4.1.1 lib/mihari/mixins/retriable.rb
mihari-4.1.0 lib/mihari/mixins/retriable.rb
mihari-4.0.0 lib/mihari/mixins/retriable.rb
mihari-3.12.0 lib/mihari/mixins/retriable.rb
mihari-3.11.0 lib/mihari/mixins/retriable.rb
mihari-3.10.1 lib/mihari/mixins/retriable.rb
mihari-3.10.0 lib/mihari/mixins/retriable.rb
mihari-3.9.2 lib/mihari/mixins/retriable.rb
mihari-3.9.1 lib/mihari/mixins/retriable.rb
mihari-3.9.0 lib/mihari/mixins/retriable.rb
mihari-3.8.1 lib/mihari/mixins/retriable.rb
mihari-3.8.0 lib/mihari/mixins/retriable.rb
mihari-3.7.2 lib/mihari/mixins/retriable.rb
mihari-3.7.1 lib/mihari/mixins/retriable.rb
mihari-3.7.0 lib/mihari/mixins/retriable.rb
mihari-3.6.1 lib/mihari/mixins/retriable.rb
mihari-3.6.0 lib/mihari/mixins/retriable.rb
mihari-3.5.0 lib/mihari/mixins/retriable.rb
mihari-3.4.1 lib/mihari/mixins/retriable.rb