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