Class: Fluent::TailMultilineInput_EX::TailExWatcher_EX

Inherits:
TailWatcher
  • Object
show all
Defined in:
lib/fluent/plugin/in_tail_multiline_ex.rb

Instance Method Summary collapse

Constructor Details

#initialize(path, rotate_wait, pe, &receive_lines) ⇒ TailExWatcher_EX

Returns a new instance of TailExWatcher_EX.



254
255
256
257
258
259
# File 'lib/fluent/plugin/in_tail_multiline_ex.rb', line 254

def initialize(path, rotate_wait, pe, &receive_lines)
  @parent_receive_lines = receive_lines
  super(path, rotate_wait, pe, &method(:_receive_lines))
  #super(path, rotate_wait, pe, &receive_lines)
  @close_trigger = TimerWatcher.new(rotate_wait * 2, false, &method(:_close))
end

Instance Method Details

#_closeObject



275
276
277
278
279
280
281
282
# File 'lib/fluent/plugin/in_tail_multiline_ex.rb', line 275

def _close
  @close_trigger.detach if @close_trigger.attached?
  self.class.superclass.instance_method(:close).bind(self).call

  @io_handler.on_notify
  @io_handler.close
  $log.info "stop following of #{@path}"
end

#_receive_lines(lines) ⇒ Object



261
262
263
264
# File 'lib/fluent/plugin/in_tail_multiline_ex.rb', line 261

def _receive_lines(lines)
  tag = @path.tr('/', '.').gsub(/\.+/, '.').gsub(/^\./, '')
  @parent_receive_lines.call(lines, tag)
end

#close(loop = nil) ⇒ Object



266
267
268
269
270
271
272
273
# File 'lib/fluent/plugin/in_tail_multiline_ex.rb', line 266

def close(loop=nil)
  detach # detach first to avoid timer conflict
  if loop
    @close_trigger.attach(loop)
  else
    _close
  end
end