YUKI Hiroshi
null+****@clear*****
Wed Mar 25 15:53:35 JST 2015
YUKI Hiroshi 2015-03-25 15:53:35 +0900 (Wed, 25 Mar 2015) New Revision: e34a2ece0efc8e705693cf1ad18737a7757963c4 https://github.com/droonga/droonga-engine/commit/e34a2ece0efc8e705693cf1ad18737a7757963c4 Message: Reload cluster state information when other nodes are changed Modified files: lib/droonga/cluster.rb lib/droonga/engine.rb Modified: lib/droonga/cluster.rb (+18 -0) =================================================================== --- lib/droonga/cluster.rb 2015-03-25 15:36:05 +0900 (c62c85e) +++ lib/droonga/cluster.rb 2015-03-25 15:53:35 +0900 (275f0b7) @@ -16,6 +16,7 @@ require "droonga/loggable" require "droonga/changable" require "droonga/path" +require "droonga/file_observer" require "droonga/engine_node" require "droonga/node_metadata" @@ -60,13 +61,30 @@ module Droonga reload end + def start_observe + return if @file_observer + @file_observer = FileObserver.new(@loop, Path.cluster_state) + @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 + def start engine_nodes.each do |node| node.start end + start_observe end def shutdown + stop_observe engine_nodes.each do |node| node.shutdown end Modified: lib/droonga/engine.rb (+2 -0) =================================================================== --- lib/droonga/engine.rb 2015-03-25 15:36:05 +0900 (858efc3) +++ lib/droonga/engine.rb 2015-03-25 15:53:35 +0900 (9576219) @@ -62,6 +62,7 @@ module Droonga def stop_gracefully logger.trace("stop_gracefully: start") + @cluster.stop_observe on_finish = lambda do logger.trace("stop_gracefully/on_finish: start") save_last_processed_message_timestamp @@ -86,6 +87,7 @@ module Droonga def stop_immediately logger.trace("stop_immediately: start") save_last_processed_message_timestamp + @cluster.stop_observe @dispatcher.stop_immediately @cluster.shutdown @state.shutdown -------------- next part -------------- HTML����������������������������... Download