Class: Railswatch::Gems::SidekiqExt

Inherits:
Object
  • Object
show all
Defined in:
lib/railswatch/gems/sidekiq_ext.rb

Instance Method Summary collapse

Constructor Details

#initialize(options = nil) ⇒ SidekiqExt

Returns a new instance of SidekiqExt.



6
# File 'lib/railswatch/gems/sidekiq_ext.rb', line 6

def initialize(options = nil); end

Instance Method Details

#call(worker, msg, queue) ⇒ Object

rubocop:disable Metrics/AbcSize, Metrics/MethodLength



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/railswatch/gems/sidekiq_ext.rb', line 8

def call(worker, msg, queue) # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
  now = Railswatch::Utils.time
  payload = msg.is_a?(Hash) ? msg : {}
  queue_name = queue.respond_to?(:call) ? nil : queue
  record = build_record(worker, payload, queue_name, now)

  result = yield
  record.status = 'success'
  result
rescue Exception => e # rubocop:disable Lint/RescueException
  record.status = 'exception'
  record.message = e.message
  record.error_backtrace = e.backtrace&.take(20)&.join("\n")
  raise e
ensure
  persist_record(record, now)
end