YUKI Hiroshi
null+****@clear*****
Fri Nov 21 12:32:23 JST 2014
YUKI Hiroshi 2014-11-21 12:32:23 +0900 (Fri, 21 Nov 2014) New Revision: 678aa4a3cdad45ab823daad8e413e44390d277a5 https://github.com/droonga/droonga-engine/commit/678aa4a3cdad45ab823daad8e413e44390d277a5 Message: Refresh loaded node_status immediately Modified files: lib/droonga/engine.rb lib/droonga/node_status.rb lib/droonga/path.rb Modified: lib/droonga/engine.rb (+8 -1) =================================================================== --- lib/droonga/engine.rb 2014-11-21 12:19:50 +0900 (bab3952) +++ lib/droonga/engine.rb 2014-11-21 12:32:23 +0900 (72c0f8d) @@ -40,6 +40,10 @@ module Droonga @live_nodes_list_observer.on_change = lambda do @state.live_nodes = load_live_nodes end + @node_status_observer = FileObserver.new(loop, Path.node_status) + @node_status_observer.on_change = lambda do + node_status.reload + end @on_ready = nil end @@ -50,6 +54,7 @@ module Droonga end @state.start @live_nodes_list_observer.start + @node_status_observer.start @dispatcher.start logger.trace("start: done") end @@ -57,6 +62,7 @@ module Droonga def stop_gracefully logger.trace("stop_gracefully: start") @live_nodes_list_observer.stop + @node_status_observer.stop on_finish = lambda do logger.trace("stop_gracefully/on_finish: start") save_last_processed_timestamp @@ -81,6 +87,7 @@ module Droonga logger.trace("stop_immediately: start") save_last_processed_timestamp @live_nodes_list_observer.stop + @node_status_observer.stop @dispatcher.stop_immediately @state.shutdown logger.trace("stop_immediately: done") @@ -134,7 +141,7 @@ module Droonga message_timestamp = Time.parse(message["date"]) return false if effective_timestamp >= message_timestamp - FileUtils.rm(Path.effective_timestamp.to_s) + node_status.delete(:effective_message_timestamp) true end Modified: lib/droonga/node_status.rb (+6 -2) =================================================================== --- lib/droonga/node_status.rb 2014-11-21 12:19:50 +0900 (a647ec1) +++ lib/droonga/node_status.rb 2014-11-21 12:32:23 +0900 (ff5a04f) @@ -20,7 +20,7 @@ require "droonga/safe_file_writer" module Droonga class NodeStatus def initialize - @status = load + reload end def have?(key) @@ -45,13 +45,17 @@ module Droonga SafeFileWriter.write(status_file, JSON.pretty_generate(@status)) end + def reload + @status = load + end + private def normalize_key(key) key.to_sym end def status_file - @status_file ||= Path.state + "status_file" + @status_file ||= Path.node_status end def load Modified: lib/droonga/path.rb (+4 -0) =================================================================== --- lib/droonga/path.rb 2014-11-21 12:19:50 +0900 (18577d4) +++ lib/droonga/path.rb 2014-11-21 12:32:23 +0900 (d2b9f0a) @@ -44,6 +44,10 @@ module Droonga base + "state" end + def node_status + state + "status_file" + end + def live_nodes state + "live-nodes.json" end -------------- next part -------------- HTML����������������������������...Download