Class: Fluent::RubyOneLinerInput

Inherits:
Input
  • Object
show all
Defined in:
lib/fluent/plugin/in_ruby_one_liner.rb

Instance Method Summary collapse

Constructor Details

#initializeRubyOneLinerInput

Returns a new instance of RubyOneLinerInput.



9
10
11
# File 'lib/fluent/plugin/in_ruby_one_liner.rb', line 9

def initialize
  super
end

Instance Method Details

#configure(config) ⇒ Object



13
14
15
16
17
18
19
20
21
# File 'lib/fluent/plugin/in_ruby_one_liner.rb', line 13

def configure(config)
  super

  libs = @require_libs.split(',')
  libs.each {|lib| require lib}

  @config = config
  @lambda = eval("lambda {#{@command}}")
end

#runObject



28
29
30
31
32
33
34
35
36
37
# File 'lib/fluent/plugin/in_ruby_one_liner.rb', line 28

def run
  loop do
    begin
      @lambda.call
      sleep @run_interval
    rescue
      $log.warn "raises exception: #{$!.class}, '#{$!.message}, #{param}'"
    end
  end
end

#shutdownObject



39
40
41
# File 'lib/fluent/plugin/in_ruby_one_liner.rb', line 39

def shutdown
  Thread.kill(@thread)
end

#startObject



23
24
25
26
# File 'lib/fluent/plugin/in_ruby_one_liner.rb', line 23

def start
  super
  @thread = Thread.new(&method(:run))
end