[Groonga-commit] droonga/droonga-engine at 4fdf552 [master] Restart service if state of the node itself is changed

Back to archive index

YUKI Hiroshi null+****@clear*****
Fri Mar 20 16:46:10 JST 2015


YUKI Hiroshi	2015-03-20 16:46:10 +0900 (Fri, 20 Mar 2015)

  New Revision: 4fdf5524e36b790eb0c6f6470a14d364dca73d4d
  https://github.com/droonga/droonga-engine/commit/4fdf5524e36b790eb0c6f6470a14d364dca73d4d

  Message:
    Restart service if state of the node itself is changed

  Modified files:
    lib/droonga/cluster.rb
    lib/droonga/engine.rb

  Modified: lib/droonga/cluster.rb (+15 -1)
===================================================================
--- lib/droonga/cluster.rb    2015-03-20 16:31:39 +0900 (e6183a5)
+++ lib/droonga/cluster.rb    2015-03-20 16:46:10 +0900 (41f0855)
@@ -19,6 +19,7 @@ require "droonga/path"
 require "droonga/file_observer"
 require "droonga/engine_node"
 require "droonga/node_metadata"
+require "droonga/restarter"
 
 module Droonga
   class Cluster
@@ -33,6 +34,7 @@ module Droonga
     def initialize(loop, params)
       @loop = loop
 
+      @my_name = params[:my_name]
       @catalog = params[:catalog]
       @state = nil
       @node_metadata = params[:metadata]
@@ -44,7 +46,7 @@ module Droonga
       return if @file_observer
       @file_observer = FileObserver.new(@loop, Path.cluster_state)
       @file_observer.on_change = lambda do
-        reload
+        on_state_change
       end
       @file_observer.start
     end
@@ -161,6 +163,18 @@ module Droonga
       end
     end
 
+    def on_state_change
+      unles****@state*****?
+        old_state =****@state*****
+        new_state = load_state_file
+        if old_state[@my_name] != new_state[@my_name]
+          Restarter.restart
+          return
+        end
+      end
+      reload
+    end
+
     def default_state
       {}
     end

  Modified: lib/droonga/engine.rb (+1 -0)
===================================================================
--- lib/droonga/engine.rb    2015-03-20 16:31:39 +0900 (9576219)
+++ lib/droonga/engine.rb    2015-03-20 16:46:10 +0900 (33eb031)
@@ -40,6 +40,7 @@ module Droonga
                                :catalog  => @catalog,
                                :metadata => @node_metadata)
       @cluster = Cluster.new(loop,
+                             :my_name  => internal_name,
                              :catalog  => @catalog,
                              :metadata => @node_metadata)
 
-------------- next part --------------
HTML����������������������������...
Download 



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