[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 yuki****@clear*****
Wed Apr 22 10:55:35 JST 2015


確かに分かりにくかったので、別の形に変更しました。
(ifの条件式の中でforwardするのは副作用を伴うifということでこれもまた望
ましくなさそうなので、全部分けるようにしてみました。)

Kouhei Sutou wrote:
>> +        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)
> 
> _______________________________________________
> Groonga-commit mailing list
> Groonga-commit �� lists.sourceforge.jp
> http://lists.sourceforge.jp/mailman/listinfo/groonga-commit
> 

-- 
結城 洋志 <YUKI Hiroshi>
E-mail: yuki �� clear-code.com

株式会社クリアコード
〒170-0005 東京都豊島区南大塚3-29-9
           中野ビル3階
TEL : 03-5927-9440
FAX : 03-5927-9441
WWW : http://www.clear-code.com/




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