[Groonga-commit] droonga/fluent-plugin-droonga at e74cd70 [master] Restart engine gracefully

Back to archive index

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 



More information about the Groonga-commit mailing list
Back to archive index