class MemoryTracker::Stores::InMemoryStore::Manager

Public Class Methods

new(opts = {}) click to toggle source
# File lib/memory_tracker/stores/in_memory_store.rb, line 7
def initialize(opts = {})
  @length  = opts.fetch(:window_length, 60*60*4)

  @window1 = StatInterval.new(Time.now - @length/2, @length)
  @window2 = StatInterval.new(Time.now, @length)
end

Public Instance Methods

push(request) click to toggle source
# File lib/memory_tracker/stores/in_memory_store.rb, line 15
def push(request)
  rotate_windows
  @window1.push(request)
  @window2.push(request)
end
stats() click to toggle source
# File lib/memory_tracker/stores/in_memory_store.rb, line 21
def stats
  rotate_windows
  @window1.stats
end

Private Instance Methods

rotate_windows() click to toggle source
# File lib/memory_tracker/stores/in_memory_store.rb, line 27
def rotate_windows
  if Time.now > @window1.start_time + @length
    @window1 = @window2
    @window2 = StatInterval.new(Time.now, @length)
  end
end