Sha256: e2e913e4a4805ec3114c02c0b83c14b035b61a793f16210669c9b1f17ba2cb3a

Contents?: true

Size: 1.25 KB

Versions: 23

Compression:

Stored size: 1.25 KB

Contents

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

  module DispatchRider
    module Integrations
      module Appsignal

        def self.wrap_message(job, message)
          begin
            ::Appsignal::Transaction.create(SecureRandom.uuid, ENV.to_hash)

            ::ActiveSupport::Notifications.instrument(
              '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
          rescue Exception => exception
            unless ::Appsignal.is_ignored_exception?(exception)
              ::Appsignal::Transaction.current.add_exception(exception)
            end
            raise exception
          ensure
            ::Appsignal::Transaction.current.complete!
          end
        end

      end
    end
  end

  DispatchRider.configure do |config|

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

  end

  if ::Appsignal.active?
    ::Appsignal.start
  end

end

Version data entries

23 entries across 23 versions & 1 rubygems

Version Path
dispatch-rider-1.7.2 lib/dispatch-rider/integrations/appsignal.rb
dispatch-rider-1.7.1 lib/dispatch-rider/integrations/appsignal.rb
dispatch-rider-1.7.0 lib/dispatch-rider/integrations/appsignal.rb
dispatch-rider-1.6.2 lib/dispatch-rider/integrations/appsignal.rb
dispatch-rider-1.6.1 lib/dispatch-rider/integrations/appsignal.rb
dispatch-rider-1.6.0 lib/dispatch-rider/integrations/appsignal.rb
dispatch-rider-1.5.3 lib/dispatch-rider/integrations/appsignal.rb
dispatch-rider-1.5.2 lib/dispatch-rider/integrations/appsignal.rb
dispatch-rider-1.5.1 lib/dispatch-rider/integrations/appsignal.rb
dispatch-rider-1.5.0 lib/dispatch-rider/integrations/appsignal.rb
dispatch-rider-1.4.2 lib/dispatch-rider/integrations/appsignal.rb
dispatch-rider-1.4.0 lib/dispatch-rider/integrations/appsignal.rb
dispatch-rider-1.3.6 lib/dispatch-rider/integrations/appsignal.rb
dispatch-rider-1.3.5 lib/dispatch-rider/integrations/appsignal.rb
dispatch-rider-1.3.4 lib/dispatch-rider/integrations/appsignal.rb
dispatch-rider-1.3.3 lib/dispatch-rider/integrations/appsignal.rb
dispatch-rider-1.3.2 lib/dispatch-rider/integrations/appsignal.rb
dispatch-rider-1.3.1 lib/dispatch-rider/integrations/appsignal.rb
dispatch-rider-1.3.0 lib/dispatch-rider/integrations/appsignal.rb
dispatch-rider-1.2.11 lib/dispatch-rider/integrations/appsignal.rb