Sha256: 472c16346e4aa59815f2052bba98e486fb16929bc5796d0e411376871352bc03
Contents?: true
Size: 1.09 KB
Versions: 2
Compression:
Stored size: 1.09 KB
Contents
require "fluent/input" module Fluent class SystemdInput < Input class PosWriter def initialize(pos_file) @path = pos_file setup end attr_reader :cursor, :path def start return unless path @running = true @thread = Thread.new(&method(:work)) end def shutdown return unless path @running = false thread.join write_pos end def update(c) return unless path lock.synchronize { @cursor = c } end private attr_reader :lock, :thread, :running def setup return unless path @lock = Mutex.new @cursor = IO.read(path).chomp if File.exist?(path) end def work while running write_pos sleep 1 end end def write_pos lock.synchronize do if @written_cursor != cursor file = File.open(path, "w+") file.print cursor file.close @written_cursor = cursor end end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
fluent-plugin-systemd-0.0.5 | lib/fluent/plugin/systemd/pos_writer.rb |
fluent-plugin-systemd-0.0.4 | lib/fluent/plugin/systemd/pos_writer.rb |