[Groonga-commit] droonga/droonga-engine at 4905a4a [buffered-forward] Use msgpack for buffered messages to be forwarded

Back to archive index

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 



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