class Emque::Consuming::ErrorTracker
Attributes
expiration[RW]
limit[RW]
occurrences[RW]
Public Class Methods
new(limit: 5, expiration: 3600)
click to toggle source
# File lib/emque/consuming/error_tracker.rb, line 8 def initialize(limit: 5, expiration: 3600) self.limit = limit self.expiration = expiration self.occurrences = {} end
Public Instance Methods
count()
click to toggle source
# File lib/emque/consuming/error_tracker.rb, line 22 def count recent_errors.keys.count end
limit_reached?()
click to toggle source
# File lib/emque/consuming/error_tracker.rb, line 18 def limit_reached? count >= limit end
notice_error_for(context)
click to toggle source
# File lib/emque/consuming/error_tracker.rb, line 14 def notice_error_for(context) occurrences[key_for(context)] = Time.now + expiration end
Private Instance Methods
key_for(context)
click to toggle source
# File lib/emque/consuming/error_tracker.rb, line 34 def key_for(context) Digest::SHA256.hexdigest(context.to_s) end
recent_errors()
click to toggle source
# File lib/emque/consuming/error_tracker.rb, line 28 def recent_errors occurrences.delete_if do |key, expiration_time| expiration_time < Time.now end end