YUKI Hiroshi
null+****@clear*****
Wed Apr 22 21:41:58 JST 2015
YUKI Hiroshi 2015-04-22 21:41:58 +0900 (Wed, 22 Apr 2015) New Revision: 5b08670797ad8c4d8c221c2e9f23b3cc549f60d0 https://github.com/droonga/droonga-engine/commit/5b08670797ad8c4d8c221c2e9f23b3cc549f60d0 Message: Refresh conenction only for myself Modified files: lib/droonga/cluster.rb lib/droonga/command/droonga_engine_service.rb lib/droonga/engine_node.rb Modified: lib/droonga/cluster.rb (+8 -4) =================================================================== --- lib/droonga/cluster.rb 2015-04-22 21:36:09 +0900 (3049e0d) +++ lib/droonga/cluster.rb 2015-04-22 21:41:58 +0900 (151235e) @@ -99,9 +99,12 @@ module Droonga logger.trace("shutdown: done") end - def refresh_connections - clear_cache - engine_nodes.each(&:resume) + def refresh_connection_for(name) + engine_nodes.each do |node| + if node.name == receiver_node_name + node.refresh_connection + end + end end def reload @@ -116,7 +119,8 @@ module Droonga logger.info("cluster state not changed") else logger.info("cluster state changed", :state => @state) - refresh_connections + clear_cache + engine_nodes.each(&:resume) on_change end logger.trace("reload: done") Modified: lib/droonga/command/droonga_engine_service.rb (+1 -1) =================================================================== --- lib/droonga/command/droonga_engine_service.rb 2015-04-22 21:36:09 +0900 (6ca64af) +++ lib/droonga/command/droonga_engine_service.rb 2015-04-22 21:41:58 +0900 (6b643c3) @@ -222,7 +222,7 @@ module Droonga @receiver.stop_gracefully #XXX To disconnect all clients to myself (old service), # we must refresh all connections via EngineNode. - @engine.cluster.refresh_connections + @engine.cluster.refresh_connection_for(@engine_name) #XXX However, internal connections via Forwarder can be # still there. Then we have to wait for their timeout. @receiver.ensure_no_client do Modified: lib/droonga/engine_node.rb (+5 -0) =================================================================== --- lib/droonga/engine_node.rb 2015-04-22 21:36:09 +0900 (a5870cd) +++ lib/droonga/engine_node.rb 2015-04-22 21:41:58 +0900 (5553a47) @@ -65,6 +65,11 @@ module Droonga logger.trace("shutdown: done") end + def refresh_connection + shutdown + sender # instantiate new sender + end + def forward(message, destination) if read_message?(message) # A node can receive read messages for other nodes, -------------- next part -------------- HTML����������������������������...下載