class Cache
Constants
- ONE_DAY_IN_SECONDS
Attributes
cache[R]
times_queried[R]
timestamps[R]
Public Class Methods
cache_event(event, ip, filter)
click to toggle source
# File lib/logstash/filters/ip2location.rb, line 149 def cache_event(event, ip, filter) filter.handleEvent(event) cache[ip] = event timestamps[ip] = Time.now end
Also aliased as: refresh_event
cache_full?(cache_size)
click to toggle source
# File lib/logstash/filters/ip2location.rb, line 145 def cache_full?(cache_size) cache.size >= cache_size end
find(event, ip, filter, cache_size)
click to toggle source
# File lib/logstash/filters/ip2location.rb, line 120 def find(event, ip, filter, cache_size) synchronize do if cache.has_key?(ip) refresh_event(event, ip, filter) if too_old?(ip) else if cache_full?(cache_size) make_room end cache_event(event, ip, filter) end times_queried.increment(ip) cache[ip] end end
make_room()
click to toggle source
# File lib/logstash/filters/ip2location.rb, line 139 def make_room key = times_queried.delete_least_used cache.delete(key) timestamps.delete(key) end
synchronize(&block)
click to toggle source
# File lib/logstash/filters/ip2location.rb, line 155 def synchronize(&block) @mutex.synchronize(&block) end
too_old?(ip)
click to toggle source
# File lib/logstash/filters/ip2location.rb, line 135 def too_old?(ip) timestamps[ip] < Time.now - ONE_DAY_IN_SECONDS end