[Groonga-commit] droonga/droonga-engine at 4fa8140 [master] Shutdown internal message receiver gracefully

Back to archive index

YUKI Hiroshi null+****@clear*****
Thu Apr 23 18:40:09 JST 2015


YUKI Hiroshi	2015-04-23 18:40:09 +0900 (Thu, 23 Apr 2015)

  New Revision: 4fa81404758c7fb0762ceb8a6fc0250d7173f30e
  https://github.com/droonga/droonga-engine/commit/4fa81404758c7fb0762ceb8a6fc0250d7173f30e

  Message:
    Shutdown internal message receiver gracefully

  Modified files:
    lib/droonga/command/droonga_engine_service.rb
    lib/droonga/internal_fluent_message_receiver.rb

  Modified: lib/droonga/command/droonga_engine_service.rb (+19 -7)
===================================================================
--- lib/droonga/command/droonga_engine_service.rb    2015-04-23 17:58:28 +0900 (9a28694)
+++ lib/droonga/command/droonga_engine_service.rb    2015-04-23 18:40:09 +0900 (9180e7e)
@@ -139,10 +139,21 @@ module Droonga
         end
       end
 
-      def shutdown_internal_message_receiver
+      def shutdown_internal_message_receiver_gracefully
+        if @internal_message_receiver.nil?
+          yield
+          return
+        end
+        @internal_message_receiver, receiver = nil, @internal_message_receiver
+        receiver.shutdown_gracefully do
+          yield
+        end
+      end
+
+      def shutdown_internal_message_receiver_immediately
         return if @internal_message_receiver.nil?
         @internal_message_receiver, receiver = nil, @internal_message_receiver
-        receiver.shutdown
+        receiver.shutdown_immediately
       end
 
       def run_engine
@@ -234,10 +245,11 @@ module Droonga
           @engine.stop_gracefully do
             logger.trace("stop_gracefully: ready to stop workers")
             shutdown_worker_process_agent
-            shutdown_internal_message_receiver
-            logger.trace("stop_gracefully: done",
-                         :n_rest_watchers => @loop.watchers.size,
-                         :rest_watchers   => @loop.watchers)
+            shutdown_internal_message_receiver_gracefully do
+              logger.trace("stop_gracefully: done",
+                           :n_rest_watchers => @loop.watchers.size,
+                           :rest_watchers   => @loop.watchers)
+            end
           end
         end
       end
@@ -246,7 +258,7 @@ module Droonga
       def stop_immediately
         shutdown_worker_process_agent
         @receiver.stop_immediately
-        shutdown_internal_message_receiver
+        shutdown_internal_message_receiver_immediately
         @engine.stop_immediately
         @loop.stop
       end

  Modified: lib/droonga/internal_fluent_message_receiver.rb (+27 -8)
===================================================================
--- lib/droonga/internal_fluent_message_receiver.rb    2015-04-23 17:58:28 +0900 (181c213)
+++ lib/droonga/internal_fluent_message_receiver.rb    2015-04-23 18:40:09 +0900 (8bb930d)
@@ -38,12 +38,22 @@ module Droonga
       [@host, @port]
     end
 
-    def shutdown
-      logger.trace("shutdown: start")
-      shutdown_message_receiver
+    def shutdown_gracefully
+      logger.trace("shutdown_gracefully: start")
       shutdown_heartbeat_socket
       shutdown_listen_socket
-      logger.trace("shutdown: done")
+      shutdown_message_receiver do
+        yield
+        logger.trace("shutdown_gracefully: done")
+      end
+    end
+
+    def shutdown_immediately
+      logger.trace("shutdown_immediately: start")
+      shutdown_heartbeat_socket
+      shutdown_listen_socket
+      shutdown_message_receiver_immediately
+      logger.trace("shutdown_immediately: done")
     end
 
     private
@@ -56,6 +66,7 @@ module Droonga
 
     def shutdown_listen_socket
       logger.trace("shutdown_listen_socket: start")
+      @listen_socket.close
       logger.trace("shutdown_listen_socket: done")
     end
 
@@ -73,6 +84,7 @@ module Droonga
 
     def shutdown_heartbeat_socket
       logger.trace("shutdown_heartbeat_socket: start")
+      @heartbeat_socket.close
       logger.trace("shutdown_heartbeat_socket: done")
     end
 
@@ -87,11 +99,18 @@ module Droonga
       logger.trace("start_heartbeat_socket: done")
     end
 
-    # TODO: Use stop_gracefully/stop_immediately interface
-    def shutdown_message_receiver
-      logger.trace("shutdown_message_receiver: start")
+    def shutdown_message_receiver_gracefully
+      logger.trace("shutdown_message_receiver_gracefully: start")
+      @message_receiver.stop_gracefully do
+        yield
+        logger.trace("shutdown_message_receiver_gracefully: done")
+      end
+    end
+
+    def shutdown_message_receiver_immediately
+      logger.trace("shutdown_message_receiver_immediately: start")
       @message_receiver.stop_immediately
-      logger.trace("shutdown_message_receiver: done")
+      logger.trace("shutdown_message_receiver_immediately: done")
     end
 
     def log_tag
-------------- next part --------------
HTML����������������������������...
Descargar 



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