class Cassandra::Reconnection::Policies::Exponential::Schedule

@private

Public Class Methods

new(start, max, exponent) click to toggle source
   # File lib/cassandra/reconnection/policies/exponential.rb
27 def initialize(start, max, exponent)
28   @interval = start
29   @max      = max
30   @exponent = exponent
31 end

Public Instance Methods

next() click to toggle source
   # File lib/cassandra/reconnection/policies/exponential.rb
33 def next
34   @interval.tap { backoff if @interval < @max }
35 end

Private Instance Methods

backoff() click to toggle source
   # File lib/cassandra/reconnection/policies/exponential.rb
39 def backoff
40   new_interval = @interval * @exponent
41 
42   @interval = if new_interval >= @max
43                 @max
44               else
45                 new_interval
46               end
47 end