YUKI Hiroshi
null+****@clear*****
Thu Dec 18 19:25:13 JST 2014
YUKI Hiroshi 2014-12-18 19:25:13 +0900 (Thu, 18 Dec 2014) New Revision: 4905a4afc7db90161ef0ee76cdde4341181238f4 https://github.com/droonga/droonga-engine/commit/4905a4afc7db90161ef0ee76cdde4341181238f4 Message: Use msgpack for buffered messages to be forwarded Modified files: lib/droonga/forward_buffer.rb Modified: lib/droonga/forward_buffer.rb (+10 -3) =================================================================== --- lib/droonga/forward_buffer.rb 2014-12-18 19:15:06 +0900 (280671b) +++ lib/droonga/forward_buffer.rb 2014-12-18 19:25:13 +0900 (e6cdde4) @@ -16,8 +16,8 @@ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA require "fileutils" -require "json" require "pathname" +require "msgpack" require "droonga/loggable" require "droonga/path" @@ -33,6 +33,9 @@ module Droonga @node_name = node_name @forwarder = params[:forwarder] + @packer = MessagePack::Packer.new + @unpacker = MessagePack::Unpacker.new + @data_directory = Path.intentional_buffer + "#{@node_name}" FileUtils.mkdir_p(@data_directory.to_s) end @@ -46,9 +49,11 @@ module Droonga "arguments" => arguments, "options" => options, } + @packer.pack(buffered_message) SafeFileWriter.write(file_path) do |output, file| - output.puts(JSON.generate(buffered_message)) + output.puts(@packer.to_s) end + @packer.clear logger.trace("add: done") end @@ -69,7 +74,9 @@ module Droonga buffered_message_path = Pathname(buffered_message_path) time_stamp = buffered_message_path.basename(SUFFIX) file_contents = buffered_message_path.read - buffered_message = JSON.parse(file_contents) + @unpacker.feed(file_contents) + buffered_message =****@unpac***** + @unpacker.reset @forwarder.output(buffered_message["receiver"], buffered_message["message"], buffered_message["command"], -------------- next part -------------- HTML����������������������������...Download