class Pliny::Sidekiq::JobLogger

Public Instance Methods

call(job, queue) { || ... } click to toggle source
# File lib/pliny/sidekiq/job_logger.rb, line 3
def call(job, queue)
  context = {
    sidekiq: true,
    job:     job['class'],
    job_id:  job['jid'],
    job_retry: job['retry'],
  }

  begin
    start = ::Process.clock_gettime(::Process::CLOCK_MONOTONIC)
    log(context, job_logger: true, at: :start)
    yield
    log(context, job_logger: true, at: :finish, status: :done, duration: elapsed(start))
  rescue Exception
    log(context, job_logger: true, at: :finish, status: :fail, duration: elapsed(start))
    raise
  end
end

Private Instance Methods

elapsed(start) click to toggle source
# File lib/pliny/sidekiq/job_logger.rb, line 28
def elapsed(start)
  (::Process.clock_gettime(::Process::CLOCK_MONOTONIC) - start).round(3)
end
log(context, data = {}, &blk) click to toggle source
# File lib/pliny/sidekiq/job_logger.rb, line 24
def log(context, data = {}, &blk)
  Pliny.log(context.merge(data), &blk)
end