Module: Lesmok::Caching::Helpers::ExpiryCalculation

Extended by:
ExpiryCalculation
Included in:
ExpiryCalculation
Defined in:
lib/lesmok/caching/helpers.rb

Instance Method Summary collapse

Instance Method Details

#calculate_expiry(cached_on_obj = nil, expire_in_option = nil, jitter_factor = 0.05) ⇒ Object



7
8
9
10
11
12
# File 'lib/lesmok/caching/helpers.rb', line 7

def calculate_expiry(cached_on_obj = nil, expire_in_option = nil, jitter_factor = 0.05)
  expire_in ||= cached_on_obj && cached_on_obj.respond_to?(:cache_expire_in) && cached_on_obj.cache_expire_in
  expire_in ||= (expire_in_option || 5).to_i * 60  # TODO: Is option authorative or fallback only?
  expire_in += rand * expire_in * jitter_factor if jitter_factor  # 5 % random additional time to avoid all expiring at once.
  expire_in
end