YUKI Hiroshi
null+****@clear*****
Tue Jan 6 19:44:44 JST 2015
YUKI Hiroshi 2015-01-06 19:44:44 +0900 (Tue, 06 Jan 2015) New Revision: 8ede24221c9503281503f358ad87c4629c44eaa5 https://github.com/droonga/droonga-engine/commit/8ede24221c9503281503f358ad87c4629c44eaa5 Message: Forward buffered messages correctly Modified files: lib/droonga/engine_node.rb lib/droonga/forward_buffer.rb Modified: lib/droonga/engine_node.rb (+4 -1) =================================================================== --- lib/droonga/engine_node.rb 2015-01-06 19:28:44 +0900 (8446b0e) +++ lib/droonga/engine_node.rb 2015-01-06 19:44:44 +0900 (5e52c91) @@ -27,7 +27,10 @@ module Droonga @state = state @sender_role = sender_role - @buffer = ForwardBuffer.new(name, @forwarder) + @buffer = ForwardBuffer.new(name) + @buffer.on_forward = lambda do |message, destination| + output(message, destination) + end unless @name =~ /\A(.*):(\d+)\/([^.]+)\z/ raise "name format: hostname:port/tag" Modified: lib/droonga/forward_buffer.rb (+10 -4) =================================================================== --- lib/droonga/forward_buffer.rb 2015-01-06 19:28:44 +0900 (3c3f517) +++ lib/droonga/forward_buffer.rb 2015-01-06 19:44:44 +0900 (7c9ec3d) @@ -29,8 +29,10 @@ module Droonga SUFFIX = ".msgpack" - def initialize(node_name, forwarder) - @forwarder = forwarder + attr_writer :on_forward + + def initialize(node_name) + @on_forward = nil @packer = MessagePack::Packer.new @unpacker = MessagePack::Unpacker.new @@ -73,8 +75,8 @@ module Droonga @unpacker.feed(file_contents) buffered_message =****@unpac***** @unpacker.reset - @forwarder.forward(buffered_message["message"], - buffered_message["destination"]) + on_forward(buffered_message["message"], + buffered_message["destination"]) FileUtils.rm_f(buffered_message_path.to_s) logger.trace("forward: done (#{buffered_message_path})") end @@ -83,6 +85,10 @@ module Droonga @data_directory + "#{time_stamp.iso8601(6)}#{SUFFIX}" end + def on_forward(message, destination) + @on_forward.call(message, destination) if @on_forward + end + def log_tag "[#{Process.ppid}] forward-buffer" end -------------- next part -------------- HTML����������������������������... Descargar