Sha256: a573d41b187a52192cafe9ba619b8ee8385dfae8049b47445b89aa7edca37aa8

Contents?: true

Size: 796 Bytes

Versions: 12

Compression:

Stored size: 796 Bytes

Contents

module WatCatcher
  class SidekiqMiddleware
    def call(worker, msg, queue)
      begin
        yield
      rescue => excpt
        raise if thrown_by_watcatcher?(msg)
        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; raise
        end

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

    def thrown_by_watcatcher?(msg)
      msg["class"] =~ /WatCatcher/
    end
  end

end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
wat_catcher-0.10.7 lib/wat_catcher/sidekiq_middleware.rb
wat_catcher-0.10.6 lib/wat_catcher/sidekiq_middleware.rb
wat_catcher-0.10.5 lib/wat_catcher/sidekiq_middleware.rb
wat_catcher-0.10.4 lib/wat_catcher/sidekiq_middleware.rb
wat_catcher-0.10.3 lib/wat_catcher/sidekiq_middleware.rb
wat_catcher-0.10.2 lib/wat_catcher/sidekiq_middleware.rb
wat_catcher-0.10.1 lib/wat_catcher/sidekiq_middleware.rb
wat_catcher-0.10.0 lib/wat_catcher/sidekiq_middleware.rb
wat_catcher-0.9.0 lib/wat_catcher/sidekiq_middleware.rb
wat_catcher-0.8.9 lib/wat_catcher/sidekiq_middleware.rb
wat_catcher-0.8.8 lib/wat_catcher/sidekiq_middleware.rb
wat_catcher-0.8.7 lib/wat_catcher/sidekiq_middleware.rb