[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

Kouhei Sutou kou****@clear*****
Wed Apr 22 10:16:14 JST 2015


> +        fowarded = forward(buffered_message_path) || fowarded

この書き方、ちょっとトリッキーだなと思いました。

「1つでも成功したら成功」というコードだと思うので、

  if forward(buffered_message_path)
    fowarded = true
  end

の方がやりたいことが明確なコードじゃないかと思いました。

それはそれとして、fowardedはtypoっぽいです。

  fo warded
  forwarded
    +

In <8df8014dd311c826b78cbfabe30d2e1609cc35a2 �� jenkins.clear-code.com>
  "[Groonga-commit] droonga/droonga-engine �� 8df8014 [master] Don't forward messages older than the timestamp given as "process_messages_newer_than"" on Tue, 21 Apr 2015 19:16:13 +0900,
  YUKI Hiroshi <null+groonga �� clear-code.com> wrote:

> 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)




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