class LogStash::Filters::Empow::ClassifierCache
Public Class Methods
new(cache_size, ttl)
click to toggle source
# File lib/logstash/filters/classifier-cache.rb, line 10 def initialize(cache_size, ttl) @logger ||= self.logger @logger.debug("cache size #{cache_size}") @lru_cache ||= LruRedux::TTL::ThreadSafeCache.new(cache_size, ttl) end
Public Instance Methods
classify(key)
click to toggle source
# File lib/logstash/filters/classifier-cache.rb, line 18 def classify(key) return nil if key.nil? tuple = @lru_cache[key] return nil if tuple.nil? expiration_time = tuple[:expiration_time] if Time.now > expiration_time @lru_cache.evict(key) return nil end res = tuple[:val] return res end
put(key, val, expiration_time)
click to toggle source
# File lib/logstash/filters/classifier-cache.rb, line 37 def put(key, val, expiration_time) return if key.nil? @logger.debug("caching new entry", :key => key, :val => val) tuple = {} tuple[:val] = val tuple[:expiration_time] = expiration_time @lru_cache[key] = tuple end