class Sidekiq::Benchmark::Worker::Benchmark
Attributes
finish_time[R]
metrics[R]
redis_keys[R]
start_time[R]
Public Class Methods
new(worker, redis_key, options)
click to toggle source
# File lib/sidekiq-benchmark/worker.rb, line 24 def initialize(worker, redis_key, options) @metrics = {} @worker = worker @options = options @start_time = Time.now @redis_keys = %i[total stats].reduce({}) do |m, e| m[e] = "#{REDIS_NAMESPACE}:#{redis_key}:#{e}" m end set_redis_key redis_key end
Public Instance Methods
[](name)
click to toggle source
# File lib/sidekiq-benchmark/worker.rb, line 67 def [](name) @metrics[name] end
[]=(name, value)
click to toggle source
# File lib/sidekiq-benchmark/worker.rb, line 63 def []=(name, value) @metrics[name] = value.to_f end
call(name, *args)
click to toggle source
# File lib/sidekiq-benchmark/worker.rb, line 59 def call(name, *args) measure(name) { @worker.send(name, *args) } end
finish()
click to toggle source
# File lib/sidekiq-benchmark/worker.rb, line 39 def finish @finish_time = Time.now self[:job_time] = finish_time - start_time save end
measure(name) { || ... }
click to toggle source
# File lib/sidekiq-benchmark/worker.rb, line 45 def measure(name) t0 = Time.now ret = yield t1 = Time.now self[name] ||= 0.0 self[name] += t1 - t0 Sidekiq.logger.info "Benchmark #{name}: #{t1 - t0} sec." if @options[:log] ret end
Also aliased as: bm
method_missing(name, *args, &block)
click to toggle source
# File lib/sidekiq-benchmark/worker.rb, line 98 def method_missing(name, *args, &block) if block_given? measure(name, &block) self[name] else self[name] = args[0] end end
save()
click to toggle source
# File lib/sidekiq-benchmark/testing.rb, line 5 def save; end
set_redis_key(key)
click to toggle source
# File lib/sidekiq-benchmark/testing.rb, line 6 def set_redis_key(key); end