Class: Fluent::TailMultilineInput_EX::TailExWatcher_EX
- Inherits:
-
TailWatcher
- Object
- TailWatcher
- Fluent::TailMultilineInput_EX::TailExWatcher_EX
- Defined in:
- lib/fluent/plugin/in_tail_multiline_ex.rb
Instance Method Summary collapse
- #_close ⇒ Object
- #_receive_lines(lines) ⇒ Object
- #close(loop = nil) ⇒ Object
-
#initialize(path, rotate_wait, pe, &receive_lines) ⇒ TailExWatcher_EX
constructor
A new instance of TailExWatcher_EX.
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
#_close ⇒ Object
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 |