Sha256: 2f14ae7117aed89006ff63601cdcec4e8e162d7b223ac00eb9b3ff08ef686750

Contents?: true

Size: 782 Bytes

Versions: 1

Compression:

Stored size: 782 Bytes

Contents

module ScoutApm
  module Instruments
    module Resque
      def around_perform_with_scout_instruments(*args)
        job_name = self.to_s
        queue = find_queue

        req = ScoutApm::RequestManager.lookup
        req.job!

        begin
          req.start_layer(ScoutApm::Layer.new('Queue', queue))
          started_queue = true
          req.start_layer(ScoutApm::Layer.new('Job', job_name))
          started_job = true

          yield
        rescue => e
          req.error!
          raise
        ensure
          req.stop_layer if started_job
          req.stop_layer if started_queue
        end
      end

      def find_queue
        return @queue if @queue
        return queue if self.respond_to?(:queue)
        return "unknown"
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
scout_apm-2.1.31 lib/scout_apm/instruments/resque.rb