Sha256: f667d2db95031ea4007f1670aea7a47121ee1eb64a11cd708f72902438dd5050
Contents?: true
Size: 1003 Bytes
Versions: 2
Compression:
Stored size: 1003 Bytes
Contents
module SidekiqMiddlewares class Benchmarker def initialize(opts = {}) @logger = opts[:logger] || raise(ArgumentError, 'missing keyword: logger') @formatter = opts[:formatter] || proc { |message| message } end def call(_worker, job, _queue) start_time = Process.clock_gettime(Process::CLOCK_MONOTONIC) yield ensure elapsed_time = Process.clock_gettime(Process::CLOCK_MONOTONIC) - start_time @logger.info(@formatter.call(message_to_log(job, elapsed_time))) end private def message_to_log(job, measurement) base_by(job).merge(results_by(measurement)) end def base_by(job) { 'jid' => job['jid'], 'queue' => job['queue'], 'worker_class' => job['class'], 'args' => job['args'].inspect, 'created_at' => job['created_at'], 'enqueued_at' => job['enqueued_at'] } end def results_by(elapsed_time) {'execution_time_sec' => elapsed_time} end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
sidekiq_middlewares-0.3.3 | lib/sidekiq_middlewares/benchmarker.rb |
sidekiq_middlewares-0.3.2 | lib/sidekiq_middlewares/benchmarker.rb |