[Groonga-commit] droonga/fluent-plugin-droonga at f1b0acd [master] Move request message handling to worker from handler

Back to archive index

Kouhei Sutou null+****@clear*****
Wed Nov 27 22:48:47 JST 2013


Kouhei Sutou	2013-11-27 22:48:47 +0900 (Wed, 27 Nov 2013)

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

  Message:
    Move request message handling to worker from handler
    
    It is not a work for handler.

  Modified files:
    lib/droonga/handler.rb
    lib/droonga/worker.rb

  Modified: lib/droonga/handler.rb (+0 -17)
===================================================================
--- lib/droonga/handler.rb    2013-11-27 22:43:27 +0900 (86ee98c)
+++ lib/droonga/handler.rb    2013-11-27 22:48:47 +0900 (6e9c5aa)
@@ -32,7 +32,6 @@ module Droonga
       @options = options
       @name = options[:name]
       @database_name = options[:database]
-      @queue_name = options[:queue_name] || "DroongaQueue"
       prepare
     end
 
@@ -45,24 +44,9 @@ module Droonga
         @context.close
         @database = @context = nil
       end
-      if @job_queue
-        @job_queue.close
-        @job_queue = nil
-      end
       $log.trace("#{log_tag}: shutdown: done")
     end
 
-    def execute_one
-      $log.trace("#{log_tag}: execute_one: start")
-      envelope = @job_queue.pull_message
-      unless envelope
-        $log.trace("#{log_tag}: execute_one: abort: no message")
-        return
-      end
-      process(envelope)
-      $log.trace("#{log_tag}: execute_one: done")
-    end
-
     def prefer_synchronous?(command)
       find_plugin(command).prefer_synchronous?(command)
     end
@@ -107,7 +91,6 @@ module Droonga
       if @database_name && !@database_name.empty?
         @context = Groonga::Context.new
         @database =****@conte*****_database(@database_name)
-        @job_queue = JobQueue.open(@database_name, @queue_name)
       end
       load_plugins(@options[:handlers] || [])
       @forwarder = Forwarder.new

  Modified: lib/droonga/worker.rb (+18 -5)
===================================================================
--- lib/droonga/worker.rb    2013-11-27 22:43:27 +0900 (62da90f)
+++ lib/droonga/worker.rb    2013-11-27 22:48:47 +0900 (418297e)
@@ -20,18 +20,20 @@ require "droonga/handler"
 module Droonga
   module Worker
     def initialize
-      @handler = Handler.new(config)
+      @database_name = config[:database]
+      @queue_name = config[:queue_name] || "DroongaQueue"
     end
 
     def run
       $log.trace("#{log_tag}: run: start")
+      handler = Handler.new(config)
+      job_queue = JobQueue.open(@database_name, @queue_name)
       @running = true
       while @running
-        $log.trace("#{log_tag}: run: pull_message: start")
-        @handler.execute_one
-        $log.trace("#{log_tag}: run: pull_message: done")
+        process(handler, job_queue)
       end
-      @handler.shutdown
+      handler.shutdown
+      job_queue.close
       $log.trace("#{log_tag}: run: done")
     end
 
@@ -42,6 +44,17 @@ module Droonga
     end
 
     private
+    def process(handler, job_queue)
+      $log.trace("#{log_tag}: process: start")
+      envelope = job_queue.pull_message
+      unless envelope
+        $log.trace("#{log_tag}: process: abort: no message")
+        return
+      end
+      handler.process(envelope)
+      $log.trace("#{log_tag}: process: done")
+    end
+
     def log_tag
       "[#{Process.ppid}][#{Process.pid}] worker"
     end
-------------- next part --------------
HTML����������������������������...
Download 



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