Class: WatCatcher::SidekiqMiddleware

Inherits:
Object
  • Object
show all
Defined in:
lib/wat_catcher/sidekiq_middleware.rb

Instance Method Summary collapse

Instance Method Details

#call(worker, msg, queue) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/wat_catcher/sidekiq_middleware.rb', line 3

def call(worker, msg, queue)
  begin
    yield
  rescue => excpt
    u = nil
    begin
      if worker.class == Sidekiq::Extensions::DelayedClass
        (worker,method_name,args) = YAML.load(msg["args"][0])
      end
      if worker.respond_to?(:wat_user) && worker.method(:wat_user).arity == msg["args"].length
        u = worker.wat_user(*msg["args"])
      else
        u = { id: "jid_#{msg["jid"]}", jid: msg["jid"] }
      end

    rescue
    end

    WatCatcher::Report.new(excpt, user: u, sidekiq: msg)
    raise
  end
end