Sha256: 3e7edfe9361a3b41d679146296e098c4722f3cf39c23cb765091ef2d092a5bd9
Contents?: true
Size: 1.09 KB
Versions: 1
Compression:
Stored size: 1.09 KB
Contents
# encoding: UTF-8 class Fluent::GcInput < Fluent::Input Fluent::Plugin.register_input('gc', self) config_param :disable, :bool, :default => false config_param :interval, :time, :default => 5 config_param :debug, :bool, :default => false attr_accessor :last_checked def configure(conf) super @interval = @interval.to_i end def start super GC.disable if @disable @watcher = Thread.new(&method(:watcher)) end def shutdown super @watcher.terminate @watcher.join end # thread callback def watcher @last_checked = Fluent::Engine.now while true sleep 0.5 begin if Fluent::Engine.now - @last_checked >= @interval now = Fluent::Engine.now start_gc @last_checked = now end rescue => e $log.warn "#{e.class} #{e.message} #{e.backtrace.first}" end end end def start_gc $log.info "gc: before #{GC.stat}" if @debug # intentionally info level disabled = GC.enable GC.start GC.disable if disabled $log.info "gc: after #{GC.stat}" if @debug end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
fluent-plugin-gc-0.0.1 | lib/fluent/plugin/in_gc.rb |