[Groonga-commit] droonga/droonga-engine at 5b08670 [master] Refresh conenction only for myself

Back to archive index

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����������������������������...
Descargar 



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