lib/fusuma.rb in fusuma-3.5.0 vs lib/fusuma.rb in fusuma-3.6.0
- old
+ new
@@ -13,18 +13,17 @@
class Runner
class << self
def run(option = {})
read_options(option)
instance = new
+ instance.initialize_plugins
instance.set_trap
## NOTE: Uncomment following line to measure performance
# instance.run_with_lineprof
instance.run
- rescue => e
- MultiLogger.error("Shutdown by error")
- MultiLogger.error(e)
- instance.send(:shutdown)
+ ensure
+ instance&.send(:shutdown)
end
private
def read_options(option)
@@ -57,11 +56,13 @@
def load_custom_config(config_path = nil)
Config.custom_path = config_path
end
end
- def initialize
+ def initialize; end
+
+ def initialize_plugins
@inputs = Plugin::Inputs::Input.plugins.map do |cls|
cls.ancestors.include?(Singleton) ? cls.instance : cls.new
end
@filters = Plugin::Filters::Filter.plugins.map(&:new)
@parsers = Plugin::Parsers::Parser.plugins.map(&:new)
@@ -204,10 +205,10 @@
end
private
def shutdown
- [@inputs, @filters, @parsers, @buffers, @detectors, @executors].flatten.each do |plugin|
+ [@inputs, @filters, @parsers, @buffers, @detectors, @executors].flatten.compact.each do |plugin|
plugin.shutdown
end
end
end
end