class Mnemosyne::Middleware::Sidekiq

Public Instance Methods

call(worker, job, queue) { || ... } click to toggle source
# File lib/mnemosyne/middleware/sidekiq.rb, line 6
def call(worker, job, queue)
  origin      = job.delete('mnemosyne.origin') { false }
  transaction = job.delete('mnemosyne.transaction') { uuid }

  meta = {
    raw: job,
    queue: queue,
    worker: worker.class.name,
    arguments: job['args']
  }

  trace = ::Mnemosyne::Instrumenter.trace 'app.job.perform.sidekiq',
    transaction: transaction,
    origin: origin,
    meta: meta

  trace&.start!

  yield
rescue StandardError, LoadError, SyntaxError => e
  trace.attach_error(e)
  raise
ensure
  if trace
    trace.submit
    trace.release
  end
end

Private Instance Methods

uuid() click to toggle source
# File lib/mnemosyne/middleware/sidekiq.rb, line 37
def uuid
  ::SecureRandom.uuid
end