Yoji Shidara
null+****@clear*****
Thu Feb 13 17:30:31 JST 2014
Yoji Shidara 2014-02-13 17:30:31 +0900 (Thu, 13 Feb 2014) New Revision: e74cd70a285f1d2c8f67e96a9514f7120e5e7552 https://github.com/droonga/fluent-plugin-droonga/commit/e74cd70a285f1d2c8f67e96a9514f7120e5e7552 Message: Restart engine gracefully Modified files: lib/fluent/plugin/out_droonga.rb Modified: lib/fluent/plugin/out_droonga.rb (+19 -2) =================================================================== --- lib/fluent/plugin/out_droonga.rb 2014-02-13 16:58:05 +0900 (fb78216) +++ lib/fluent/plugin/out_droonga.rb 2014-02-13 17:30:31 +0900 (942c415) @@ -30,11 +30,12 @@ module Fluent Droonga::PluginLoader.load_all @catalog_observer = Droonga::CatalogObserver.new @catalog_observer.on_reload = lambda do |catalog| - $log.info "CATALOG RELOADED" + graceful_engine_restart(catalog) + $log.info "engine restarted" end @catalog_observer.start catalog = @catalog_observer.catalog - @engine = Droonga::Engine.new(catalog, :name => @name) + @engine = create_engine(catalog) @engine.start end @@ -54,6 +55,22 @@ module Fluent end private + def create_engine(catalog) + Droonga::Engine.new(catalog, :name => @name) + end + + def graceful_engine_restart(catalog) + $log.trace "out_droonga: start: graceful_engine_restart" + old_engine = @engine + $log.trace "out_droonga: creating new engine" + new_engine = create_engine(catalog) + new_engine.start + @engine = new_engine + $log.trace "out_droonga: shutdown old engine" + old_engine.shutdown + $log.trace "out_droonga: done: graceful_engine_restart" + end + def process_event(tag, record) $log.trace("out_droonga: tag: <#{tag}>") @engine.process(parse_record(tag, record)) -------------- next part -------------- HTML����������������������������...Download