class Gruf::Interceptors::Timer

Utility class that can be used by interceptors to time requests

Public Class Methods

time() { || ... } click to toggle source

Time a given code block and return a Timer::Result object

@return [Gruf::Interceptors::Timer::Result]

# File lib/gruf/interceptors/timer.rb, line 75
def self.time
  start_time = Time.now
  message = yield
  end_time = Time.now
  elapsed = (end_time - start_time) * 1000.0
  Result.new(message, elapsed, true)
rescue GRPC::BadStatus => e
  end_time = Time.now
  elapsed = (end_time - start_time) * 1000.0
  Result.new(e, elapsed, false)
end