class Tapsoob::Chunksize

Attributes

chunksize[R]
end_time[RW]
idle_secs[RW]
retries[RW]
start_time[RW]
time_in_db[RW]

Public Class Methods

new(chunksize) click to toggle source
# File lib/tapsoob/chunksize.rb, line 7
def initialize(chunksize)
  @chunksize = chunksize
  @idle_secs = 0.0
  @retries = 0
end

Public Instance Methods

calc_new_chunksize() click to toggle source
# File lib/tapsoob/chunksize.rb, line 37
def calc_new_chunksize
  new_chunksize = if retries > 0
    chunksize
  elsif diff > 3.0
    (chunksize / 3).ceil
  elsif diff > 1.1
    chunksize - 100
  elsif diff < 0.8
    chunksize * 2
  else
    chunksize + 100
  end
  new_chunksize = 1 if new_chunksize < 1
  new_chunksize
end
diff() click to toggle source
# File lib/tapsoob/chunksize.rb, line 21
def diff
  end_time - start_time - time_in_db - idle_secs
end
reset_chunksize() click to toggle source
# File lib/tapsoob/chunksize.rb, line 17
def reset_chunksize
  @chunksize = (retries <= 1) ? 10 : 1
end
time_delta() { || ... } click to toggle source
# File lib/tapsoob/chunksize.rb, line 30
def time_delta
  t1 = Time.now
  yield if block_given?
  t2 = Time.now
  t2 - t1
end
time_in_db=(t) click to toggle source
# File lib/tapsoob/chunksize.rb, line 25
def time_in_db=(t)
  @time_in_db = t
  @time_in_db = @time_in_db.to_f rescue 0.0
end
to_i() click to toggle source
# File lib/tapsoob/chunksize.rb, line 13
def to_i
  chunksize
end