YUKI Hiroshi
null+****@clear*****
Fri Apr 17 17:50:40 JST 2015
YUKI Hiroshi 2015-04-17 17:50:40 +0900 (Fri, 17 Apr 2015) New Revision: 6441b28464024eac19765265d4d0a2741ec92f6e https://github.com/droonga/drndump/commit/6441b28464024eac19765265d4d0a2741ec92f6e Message: Calculate remaining time based on actual throughput as possible Modified files: lib/drndump/dump_client.rb Modified: lib/drndump/dump_client.rb (+22 -1) =================================================================== --- lib/drndump/dump_client.rb 2015-04-17 17:15:15 +0900 (c8e4037) +++ lib/drndump/dump_client.rb 2015-04-17 17:50:40 +0900 (dae8db7) @@ -20,6 +20,7 @@ require "droonga/client" module Drndump class DumpClient DEFAULT_MESSAGES_PER_SECOND = 10000 # same to droogna-engine's one + MIN_REPORTED_THROUGHPUT = 0.01 attr_reader :n_forecasted_messages, :n_received_messages attr_reader :error_message @@ -72,6 +73,10 @@ module Drndump @n_messages_per_second = options[:messages_per_second] || DEFAULT_MESSAGES_PER_SECOND @n_messages_per_second = [@n_messages_per_second, 1].max + @measure_start_time = Time.now + @previous_measure_time = @measure_start_time + @previous_n_received_messages = 0 + dump_message = { "type" => "dump", "dataset" => @dataset, @@ -137,12 +142,28 @@ module Drndump @error_message end + def recent_throughput + now = Time.now + n_messages = @n_received_messages - @previous_n_received_messages + if now - @previous_measure_time < 1 + now = @previous_measure_time + n_messages = @previous_n_received_messages + else + @previous_measure_time = now + @previous_n_received_messages = n_messages.to_f + end + elapsed_seconds = now - @measure_start_time + + [n_messages / elapsed_seconds, MIN_REPORTED_THROUGHPUT].max + end + def n_remaining_messages [@n_forecasted_messages - @n_received_messages, 0].max end def remaining_seconds - n_remaining_messages.to_f / @n_messages_per_second + throughput = [recent_throughput, @n_messages_per_second].min + n_remaining_messages.to_f / throughput end ONE_MINUTE_IN_SECONDS = 60 -------------- next part -------------- HTML����������������������������...다운로드