class LogStash::Outputs::Application_insights::Timer
Attributes
callback[R]
expiration[R]
object[R]
state[RW]
Public Class Methods
config( configuration )
click to toggle source
# File lib/logstash/outputs/application_insights/timer.rb, line 31 def self.config ( configuration ) @@configuration = configuration @@logger = configuration[:logger] @@timers = [] @@timers_modified = false @@timers_mutex = Mutex.new Thread.new do loop do sleep( 1 ) curr_time = Time.now.utc timers_triggerd = [ ] @@timers_mutex.synchronize { @@timers.each do |timer| if :on == timer.state && curr_time >= timer.expiration timer.state = :trigger timers_triggerd << [ timer.object, timer.callback ] end end } timers_triggerd.each do |pair| (object, callback) = pair callback.call( object ) end end end end
new()
click to toggle source
# File lib/logstash/outputs/application_insights/timer.rb, line 63 def initialize @@timers_mutex.synchronize { @@timers << self } @state = :off end
Public Instance Methods
cancel()
click to toggle source
# File lib/logstash/outputs/application_insights/timer.rb, line 80 def cancel @@timers_mutex.synchronize { state = @state @state = :off @@timers_modified = true if :on == state state != :trigger } end
set( expiration, object, &callback )
click to toggle source
# File lib/logstash/outputs/application_insights/timer.rb, line 70 def set ( expiration, object, &callback ) @@timers_mutex.synchronize { @@timers_modified= true @state = :on @object = object @expiration = expiration @callback = callback } end