Sha256: da5587d966a34e257f36993895dce8fad2f09dcef1187664fdc5fabad172f7a7

Contents?: true

Size: 717 Bytes

Versions: 3

Compression:

Stored size: 717 Bytes

Contents

module Sentry
  class Transport
    class State
      def initialize
        reset
      end

      def should_try?
        return true if @status == :online

        interval = @retry_after || [@retry_number, 6].min**2
        return true if Time.now - @last_check >= interval

        false
      end

      def failure(retry_after = nil)
        @status = :error
        @retry_number += 1
        @last_check = Time.now
        @retry_after = retry_after
      end

      def success
        reset
      end

      def reset
        @status = :online
        @retry_number = 0
        @last_check = nil
        @retry_after = nil
      end

      def failed?
        @status == :error
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
sentry-ruby-0.1.3 lib/sentry/transport/state.rb
sentry-ruby-0.1.2 lib/sentry/transport/state.rb
sentry-ruby-0.1.1 lib/sentry/transport/state.rb