class Ke::IndeterminateTask
Attributes
complete_time[R]
tick_count[R]
Public Class Methods
new(opts = {})
click to toggle source
# File lib/ke/indeterminate_task.rb, line 5 def initialize(opts = {}) @tick_count = 0 @duration_per_tick = 0 @duration_per_tick_history = CappedSample.new(100) @mutex = Mutex.new @last_tick_time = nil end
Public Instance Methods
complete()
click to toggle source
# File lib/ke/indeterminate_task.rb, line 43 def complete @complete_time = Time.now end
duration_per_tick()
click to toggle source
# File lib/ke/indeterminate_task.rb, line 29 def duration_per_tick @duration_per_tick_history.mean_iqr end
elapsed_duration()
click to toggle source
# File lib/ke/indeterminate_task.rb, line 17 def elapsed_duration Time.now - @start_time end
start()
click to toggle source
# File lib/ke/indeterminate_task.rb, line 25 def start @start_time = Time.now end
start_time()
click to toggle source
# File lib/ke/indeterminate_task.rb, line 13 def start_time @start_time end
tick()
click to toggle source
# File lib/ke/indeterminate_task.rb, line 33 def tick @mutex.synchronize do this_tick_time = Time.now duration_this_tick = this_tick_time - (@last_tick_time || start_time) @duration_per_tick_history << duration_this_tick @last_tick_time = this_tick_time @tick_count += 1 end end
total_duration()
click to toggle source
# File lib/ke/indeterminate_task.rb, line 21 def total_duration @complete_time - @start_time end