class ElasticAPM::Util::Throttle

Throttle.new(5) { thing to only do once per 5 secs }
Usage example:

def call

def call
  if @last_call && seconds_since_last_call < @buffer_secs
    return @last_result
  end
  @last_call = now
  @last_result = @block.call
end

def initialize(buffer_secs, &block)

def initialize(buffer_secs, &block)
  @buffer_secs = buffer_secs
  @block = block
end

def now

def now
  Process.clock_gettime(Process::CLOCK_MONOTONIC)
end

def seconds_since_last_call

def seconds_since_last_call
  now - @last_call
end