Class: SolidCache::Cluster::Expiry::Counter

Inherits:
Object
  • Object
show all
Defined in:
lib/solid_cache/cluster/expiry.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(expire_every) ⇒ Counter

Returns a new instance of Counter.



44
45
46
47
# File 'lib/solid_cache/cluster/expiry.rb', line 44

def initialize(expire_every)
  @expire_every = expire_every
  @counter = Concurrent::AtomicFixnum.new(rand(expire_every).to_i)
end

Instance Attribute Details

#counterObject (readonly)

Returns the value of attribute counter.



42
43
44
# File 'lib/solid_cache/cluster/expiry.rb', line 42

def counter
  @counter
end

#expire_everyObject (readonly)

Returns the value of attribute expire_every.



42
43
44
# File 'lib/solid_cache/cluster/expiry.rb', line 42

def expire_every
  @expire_every
end

Instance Method Details

#count(count) ⇒ Object



49
50
51
52
# File 'lib/solid_cache/cluster/expiry.rb', line 49

def count(count)
  value = counter.increment(count)
  new_multiple_of_expire_every?(value - count, value)
end