[Groonga-commit] droonga/droonga-engine at 8df8014 [master] Don't forward messages older than the timestamp given as "process_messages_newer_than"

Back to archive index

YUKI Hiroshi null+****@clear*****
Tue Apr 21 19:16:13 JST 2015


YUKI Hiroshi	2015-04-21 19:16:13 +0900 (Tue, 21 Apr 2015)

  New Revision: 8df8014dd311c826b78cbfabe30d2e1609cc35a2
  https://github.com/droonga/droonga-engine/commit/8df8014dd311c826b78cbfabe30d2e1609cc35a2

  Message:
    Don't forward messages older than the timestamp given as "process_messages_newer_than"

  Modified files:
    lib/droonga/forward_buffer.rb

  Modified: lib/droonga/forward_buffer.rb (+14 -3)
===================================================================
--- lib/droonga/forward_buffer.rb    2015-04-21 18:32:20 +0900 (60e2e75)
+++ lib/droonga/forward_buffer.rb    2015-04-21 19:16:13 +0900 (3e5c0bf)
@@ -64,8 +64,13 @@ module Droonga
 
     def start_forward
       logger.trace("start_forward: start")
+      fowarded = false
       Pathname.glob("#{@data_directory}/*#{SUFFIX}").collect do |buffered_message_path|
-        forward(buffered_message_path)
+        fowarded = forward(buffered_message_path) || fowarded
+      end
+      if @process_messages_newer_than_timestamp and fowarded
+        logger.info("New message is detected and forwarded. The boundary is now cleared.")
+        @process_messages_newer_than_timestamp = nil
       end
       @serf.reset_have_unprocessed_messages_for(@target)
       logger.trace("start_forward: done")
@@ -90,6 +95,8 @@ module Droonga
       message     = buffered_message["message"]
       destination = buffered_message["destination"]
 
+      forwarded = false
+
       if @process_messages_newer_than_timestamp
         message_timestamp = Time.parse(message["date"])
         logger.trace("Checking boundary of obsolete message",
@@ -98,8 +105,9 @@ module Droonga
         if @process_messages_newer_than_timestamp >= message_timestamp
           buffered_message = nil
         else
-          logger.info("New message is detected. The boundary is now cleared.")
-          @process_messages_newer_than_timestamp = nil
+          logger.info("New message is detected.")
+          # Don't clear the boundary for now, because older messages
+          # forwarded by the dispatcher can be still buffered.
         end
       end
 
@@ -109,10 +117,13 @@ module Droonga
                      :destination => destination)
         message["xSender"] = "forward-buffer"
         on_forward(message, destination)
+        forwarded = true
       end
 
       FileUtils.rm_f(buffered_message_path.to_s)
       logger.trace("forward: done (#{buffered_message_path})")
+
+      forwarded
     end
 
     def file_path(time_stamp=Time.now)
-------------- next part --------------
HTML����������������������������...
Descargar 



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