[Groonga-commit] droonga/fluent-plugin-droonga at f2c9c16 [master] Add trace logs to executor

Back to archive index

Kouhei Sutou null+****@clear*****
Thu Oct 31 11:36:20 JST 2013


Kouhei Sutou	2013-10-31 11:36:20 +0900 (Thu, 31 Oct 2013)

  New Revision: f2c9c1685e0a32b9881ba4ee979b71d483c067d6
  https://github.com/droonga/fluent-plugin-droonga/commit/f2c9c1685e0a32b9881ba4ee979b71d483c067d6

  Message:
    Add trace logs to executor

  Modified files:
    lib/droonga/executor.rb

  Modified: lib/droonga/executor.rb (+44 -5)
===================================================================
--- lib/droonga/executor.rb    2013-10-31 11:36:42 +0900 (7b274b9)
+++ lib/droonga/executor.rb    2013-10-31 11:36:20 +0900 (7ef0192)
@@ -43,6 +43,7 @@ module Droonga
     end
 
     def shutdown
+      $log.trace("#{log_tag}: shutdown: start")
       @handlers.each do |handler|
         handler.shutdown
       end
@@ -55,6 +56,7 @@ module Droonga
         @context.close
         @database = @context = nil
       end
+      $log.trace("#{log_tag}: shutdown: done")
     end
 
     def add_handler(name)
@@ -67,6 +69,7 @@ module Droonga
     end
 
     def dispatch(tag, time, record, synchronous=nil)
+      $log.trace("#{log_tag}: dispatch: start")
       message = [tag, time, record]
       body, type, arguments = parse_message([tag, time, record])
       reply_to = envelope["replyTo"]
@@ -80,18 +83,30 @@ module Droonga
                    "type" => type,
                    "arguments" => arguments,
                    "synchronous" => synchronous)
+      $log.trace("#{log_tag}: dispatch: done")
     end
 
     def execute_one
+      $log.trace("#{log_tag}: execute_one: start")
       message = pull_message
-      return unless message
+      unless message
+        $log.trace("#{log_tag}: execute_one: abort: no message")
+        return
+      end
       body, command, arguments = parse_message(message)
       handler = find_handler(command)
-      handler.handle(command, body, *arguments) if handler
+      if handler
+        $log.trace("#{log_tag}: execute_one: handle: start")
+        handler.handle(command, body, *arguments)
+        $log.trace("#{log_tag}: execute_one: handle: done")
+      end
+      $log.trace("#{log_tag}: execute_one: done")
     end
 
     def post(body, destination=nil)
+      $log.trace("#{log_tag}: post: start")
       post_or_push(nil, body, destination)
+      $log.trace("#{log_tag}: post: done")
     end
 
     private
@@ -126,7 +141,9 @@ module Droonga
             synchronous = handler.prefer_synchronous?(command)
           end
           if route || @pool_size.zero? || synchronous
+            $log.trace("#{log_tag}: post_or_push: handle: start")
             handler.handle(command, body, *arguments)
+            $log.trace("#{log_tag}: post_or_push: handle: done")
           else
             unless message
               envelope["body"] = body
@@ -146,7 +163,13 @@ module Droonga
     end
 
     def output(receiver, body, command, arguments)
-      return nil unless receiver.is_a?(String) && command.is_a?(String)
+      $log.trace("#{log_tag}: output: start")
+      unless receiver.is_a?(String) && command.is_a?(String)
+        $log.trace("#{log_tag}: output: abort: invalid argument",
+                   :receiver => receiver,
+                   :command  => command)
+        return
+      end
       unless receiver =~ /\A(.*):(\d+)\/(.*?)(\?.+)?\z/
         raise "format: hostname:port/tag(?params)"
       end
@@ -155,7 +178,13 @@ module Droonga
       tag  = $3
       params = $4
       output = get_output(host, port, params)
-      return unless output
+      unless output
+        $log.trace("#{log_tag}: output: abort: no output",
+                   :host   => host,
+                   :port   => port,
+                   :params => params)
+        return
+      end
       if command =~ /\.result$/
         message = {
           inReplyTo: envelope["id"],
@@ -170,7 +199,11 @@ module Droonga
           arguments: arguments
         )
       end
-      output.post(tag + ".message", message)
+      output_tag = "#{tag}.message"
+      $log.trace("#{log_tag}: output: post: start: <#{output_tag}>")
+      output.post(output_tag, message)
+      $log.trace("#{log_tag}: output: post: done: <#{output_tag}>")
+      $log.trace("#{log_tag}: output: done")
     end
 
     def parse_message(message)
@@ -190,10 +223,12 @@ module Droonga
     end
 
     def push_message(message)
+      $log.trace("#{log_tag}: push_message: start")
       packed_message = message.to_msgpack
       @queue.push do |record|
         record.message = packed_message
       end
+      $log.trace("#{log_tag}: push_message: done")
     end
 
     def pull_message
@@ -264,5 +299,9 @@ module Droonga
     def create_logger(options)
       Fluent::Logger::FluentLogger.new(nil, options)
     end
+
+    def log_tag
+      "[#{Process.ppid}][#{Process.pid}] executor"
+    end
   end
 end
-------------- next part --------------
HTML����������������������������...
Download 



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