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