Class: SolidCache::Cluster::Expiry::Counter
- Inherits:
-
Object
- Object
- SolidCache::Cluster::Expiry::Counter
- Defined in:
- lib/solid_cache/cluster/expiry.rb
Instance Attribute Summary collapse
-
#counter ⇒ Object
readonly
Returns the value of attribute counter.
-
#expire_every ⇒ Object
readonly
Returns the value of attribute expire_every.
Instance Method Summary collapse
- #count(count) ⇒ Object
-
#initialize(expire_every) ⇒ Counter
constructor
A new instance of Counter.
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
#counter ⇒ Object (readonly)
Returns the value of attribute counter.
42 43 44 |
# File 'lib/solid_cache/cluster/expiry.rb', line 42 def counter @counter end |
#expire_every ⇒ Object (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 |