[Groonga-commit] droonga/droonga-engine at 34372f6 [master] Revert "Don't apply new role and other metadata dynamically"

Back to archive index

YUKI Hiroshi null+****@clear*****
Tue Mar 31 18:17:25 JST 2015


YUKI Hiroshi	2015-03-31 18:17:25 +0900 (Tue, 31 Mar 2015)

  New Revision: 34372f6c1f292362d2827e57f4a4c2d473fc8916
  https://github.com/droonga/droonga-engine/commit/34372f6c1f292362d2827e57f4a4c2d473fc8916

  Message:
    Revert "Don't apply new role and other metadata dynamically"
    
    This reverts commit 664ba4a9154a1ebffeee784cb4ca190bffcff4f0.
    It is required to work correctly.

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

  Modified: lib/droonga/engine.rb (+2 -0)
===================================================================
--- lib/droonga/engine.rb    2015-03-31 18:04:15 +0900 (2a997b9)
+++ lib/droonga/engine.rb    2015-03-31 18:17:25 +0900 (6234cb1)
@@ -48,6 +48,7 @@ module Droonga
 
     def start
       logger.trace("start: start")
+      @node_metadata.start_observe(@loop)
       @state.on_ready = lambda do
         on_ready
       end
@@ -62,6 +63,7 @@ module Droonga
 
     def stop_gracefully
       logger.trace("stop_gracefully: start")
+      @node_metadata.stop_observe
       @cluster.shutdown
       on_finish = lambda do
         logger.trace("stop_gracefully/on_finish: start")

  Modified: lib/droonga/node_metadata.rb (+15 -4)
===================================================================
--- lib/droonga/node_metadata.rb    2015-03-31 18:04:15 +0900 (0d8b612)
+++ lib/droonga/node_metadata.rb    2015-03-31 18:17:25 +0900 (aa8ef7a)
@@ -57,8 +57,6 @@ module Droonga
     def set(key, value)
       logger.debug("setting: #{key}=#{value}")
       key = normalize_key(key)
-      # we must reload this to avoid losing of modifications made by other processes
-      reload
       @metadata[key] = value
       SafeFileWriter.write(metadata_file, JSON.pretty_generate(@metadata))
     end
@@ -66,8 +64,6 @@ module Droonga
     def delete(key)
       logger.debug("deleting: #{key}")
       key = normalize_key(key)
-      # we must reload this to avoid losing of modifications made by other processes
-      reload
       @metadata.delete(key)
       SafeFileWriter.write(metadata_file, JSON.pretty_generate(@metadata))
     end
@@ -84,6 +80,21 @@ module Droonga
       @metadata = load
     end
 
+    def start_observe(loop)
+      return if @file_observer
+      @file_observer = FileObserver.new(loop, metadata_file)
+      @file_observer.on_change = lambda do
+        reload
+      end
+      @file_observer.start
+    end
+
+    def stop_observe
+      return unless @file_observer
+      @file_observer.stop
+      @file_observer = nil
+    end
+
     private
     def normalize_key(key)
       key.to_sym
-------------- next part --------------
HTML����������������������������...
Download 



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