Sha256: 30779428cf1fcb26aa0ac81e21b646425ffbdf1961bbf43fad5aa72014d4e63f

Contents?: true

Size: 867 Bytes

Versions: 1

Compression:

Stored size: 867 Bytes

Contents

# frozen_string_literal: true

if defined? Appsignal
  ::Appsignal.logger.info('Loading Dispatch Rider integration')

  module DispatchRider
    module Integrations
      module Appsignal
        def self.wrap_message(job, message)
          ::Appsignal.start

          ::Appsignal.monitor_transaction(
            'perform_job.dispatch-rider',
            class: message.subject,
            method: 'handle',
            attempts: message.receive_count,
            queue: message.queue_name,
            queue_time: (Time.now.to_f - message.sent_at.to_f) * 1000
          ) do
            job.call
          end

          ::Appsignal.stop
        end
      end
    end
  end

  DispatchRider.configure do |config|

    config.around(:dispatch_message) do |job, message|
      DispatchRider::Integrations::Appsignal.wrap_message(job, message)
    end

  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
dispatch-rider-2.2.0 lib/dispatch-rider/integrations/appsignal.rb