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