class OneApm::Support::EventListener
Attributes
runaway_threshold[RW]
Public Class Methods
new()
click to toggle source
# File lib/one_apm/support/event/event_listener.rb, line 8 def initialize @events = {} @runaway_threshold = 100 end
Public Instance Methods
check_for_runaway_subscriptions(event)
click to toggle source
# File lib/one_apm/support/event/event_listener.rb, line 19 def check_for_runaway_subscriptions(event) count = @events[event].size OneApm::Manager.logger.debug("Run-away event subscription on #{event}? Subscribed #{count}") if count > @runaway_threshold end
clear()
click to toggle source
# File lib/one_apm/support/event/event_listener.rb, line 24 def clear @events.clear end
notify(event, *args)
click to toggle source
# File lib/one_apm/support/event/event_listener.rb, line 28 def notify(event, *args) return unless @events.has_key?(event) @events[event].each do |handler| begin handler.call(*args) rescue => err OneApm::Manager.logger.debug("Failure during notify for #{event}", err) end end end
subscribe(event, &handler)
click to toggle source
# File lib/one_apm/support/event/event_listener.rb, line 13 def subscribe(event, &handler) @events[event] ||= [] @events[event] << handler check_for_runaway_subscriptions(event) end