class Fluent::CallLater_EX
Public Class Methods
new()
click to toggle source
# File lib/fluent/plugin/in_tail_multiline_ex.rb, line 287 def initialize @locker = Monitor::new initExecBlock() @thread = Thread.new(&method(:run)) end
Public Instance Methods
call_later(delay,&block)
click to toggle source
# File lib/fluent/plugin/in_tail_multiline_ex.rb, line 293 def call_later(delay,&block) @locker.synchronize do @exec_time = Engine.now + delay @exec_block = block end @thread.run end
cancel()
click to toggle source
# File lib/fluent/plugin/in_tail_multiline_ex.rb, line 326 def cancel() initExecBlock() end
run()
click to toggle source
# File lib/fluent/plugin/in_tail_multiline_ex.rb, line 301 def run @running = true while true sleepSec = -1 @locker.synchronize do now = Engine.now if @exec_block && @exec_time <= now @exec_block.call() initExecBlock() end return unless @running unless(@exec_time == -1) sleepSec = @exec_time - now end end if (sleepSec == -1) sleep() else sleep(sleepSec) end end rescue => e puts e end
shutdown()
click to toggle source
# File lib/fluent/plugin/in_tail_multiline_ex.rb, line 330 def shutdown() @locker.synchronize do @running = false end if(@thread) @thread.run @thread.join @thread = nil end end
Private Instance Methods
initExecBlock()
click to toggle source
# File lib/fluent/plugin/in_tail_multiline_ex.rb, line 343 def initExecBlock() @locker.synchronize do @exec_time = -1 @exec_block = nil end end