class Atatus::Spies::ResqueSpy

@api private

Constants

TYPE

Public Instance Methods

install() click to toggle source
# File lib/atatus/spies/resque.rb, line 27
def install
  install_perform_spy
end
install_perform_spy() click to toggle source
# File lib/atatus/spies/resque.rb, line 31
def install_perform_spy
  if defined?(::Resque) && defined?(::Resque::Job)

    ::Resque::Job.class_eval do
      alias :perform_without_atatus :perform

      def perform
        name = @payload && @payload['class']&.to_s
        transaction = Atatus.start_transaction(name, TYPE)
        perform_without_atatus
        transaction.done 'success'
      rescue ::Exception => e
        Atatus.report(e, handled: false)
        transaction.done 'error' if transaction
        raise
      ensure
        Atatus.end_transaction
      end
    end

  end
end
perform() click to toggle source
# File lib/atatus/spies/resque.rb, line 37
def perform
  name = @payload && @payload['class']&.to_s
  transaction = Atatus.start_transaction(name, TYPE)
  perform_without_atatus
  transaction.done 'success'
rescue ::Exception => e
  Atatus.report(e, handled: false)
  transaction.done 'error' if transaction
  raise
ensure
  Atatus.end_transaction
end