Sha256: b492de7e3722fe123f70233b5ef44cd348438b0519258abb26a95c4bf8e5a014

Contents?: true

Size: 585 Bytes

Versions: 84

Compression:

Stored size: 585 Bytes

Contents

# frozen_string_literal: false

module SplitIoClient
  module Engine
    BACKOFF_MAX_ALLOWED = 1.8
    class BackOff
      def initialize(back_off_base, attempt = 0, max_allowed = BACKOFF_MAX_ALLOWED)
        @attempt = attempt
        @back_off_base = back_off_base
        @max_allowed = max_allowed
      end

      def interval
        interval = 0
        interval = (@back_off_base * (2**@attempt)) if @attempt.positive?
        @attempt += 1

        interval >= @max_allowed ? @max_allowed : interval
      end

      def reset
        @attempt = 0
      end
    end
  end
end

Version data entries

84 entries across 84 versions & 1 rubygems

Version Path
splitclient-rb-8.1.0-java lib/splitclient-rb/engine/back_off.rb
splitclient-rb-8.1.0 lib/splitclient-rb/engine/back_off.rb
splitclient-rb-8.1.0.pre.rc1-java lib/splitclient-rb/engine/back_off.rb
splitclient-rb-8.1.0.pre.rc1 lib/splitclient-rb/engine/back_off.rb
splitclient-rb-8.0.1-java lib/splitclient-rb/engine/back_off.rb
splitclient-rb-8.0.1 lib/splitclient-rb/engine/back_off.rb
splitclient-rb-8.0.1.pre.rc1-java lib/splitclient-rb/engine/back_off.rb
splitclient-rb-8.0.1.pre.rc1 lib/splitclient-rb/engine/back_off.rb
splitclient-rb-8.0.0-java lib/splitclient-rb/engine/back_off.rb
splitclient-rb-8.0.0 lib/splitclient-rb/engine/back_off.rb
splitclient-rb-8.0.0.pre.rc2-java lib/splitclient-rb/engine/back_off.rb
splitclient-rb-8.0.0.pre.rc2 lib/splitclient-rb/engine/back_off.rb
splitclient-rb-8.0.0.pre.rc1-java lib/splitclient-rb/engine/back_off.rb
splitclient-rb-8.0.0.pre.rc1 lib/splitclient-rb/engine/back_off.rb
splitclient-rb-7.3.5.pre.rc5-java lib/splitclient-rb/engine/back_off.rb
splitclient-rb-7.3.5.pre.rc5 lib/splitclient-rb/engine/back_off.rb
splitclient-rb-7.3.5.pre.rc4-java lib/splitclient-rb/engine/back_off.rb
splitclient-rb-7.3.5.pre.rc4 lib/splitclient-rb/engine/back_off.rb
splitclient-rb-7.3.5.pre.rc3-java lib/splitclient-rb/engine/back_off.rb
splitclient-rb-7.3.5.pre.rc3 lib/splitclient-rb/engine/back_off.rb