Sha256: 952256608d3c07bda1ee2b9ba1039bdf22884920f8bbe9eea3c364a9c084c665

Contents?: true

Size: 933 Bytes

Versions: 19

Compression:

Stored size: 933 Bytes

Contents

if defined?(::Delayed::Plugin)
  Appsignal.logger.info('Loading Delayed Job integration')

  module Appsignal
    module Integrations
      class DelayedPlugin < ::Delayed::Plugin
        callbacks do |lifecycle|
          lifecycle.around(:invoke_job) do |job, &block|
            invoke_with_instrumentation(job, block)
          end
        end

        def self.invoke_with_instrumentation(job, block)
          class_name, method_name = job.name.split('#')
          Appsignal.monitor_transaction(
            'perform_job.delayed_job',
            :class => class_name,
            :method => method_name,
            :priority => job.priority,
            :attempts => job.attempts,
            :queue => job.queue,
            :queue_start => job.created_at
          ) do
            block.call(job)
          end
        end
      end
    end
  end
  ::Delayed::Worker.plugins << Appsignal::Integrations::DelayedPlugin
end

Version data entries

19 entries across 19 versions & 1 rubygems

Version Path
appsignal-0.11.6 lib/appsignal/integrations/delayed_job.rb
appsignal-0.11.6.beta.0 lib/appsignal/integrations/delayed_job.rb
appsignal-0.11.5 lib/appsignal/integrations/delayed_job.rb
appsignal-0.11.4 lib/appsignal/integrations/delayed_job.rb
appsignal-0.11.4.beta.0 lib/appsignal/integrations/delayed_job.rb
appsignal-0.11.3 lib/appsignal/integrations/delayed_job.rb
appsignal-0.11.2 lib/appsignal/integrations/delayed_job.rb
appsignal-0.11.1 lib/appsignal/integrations/delayed_job.rb
appsignal-0.11.0 lib/appsignal/integrations/delayed_job.rb
appsignal-0.11.0.beta.2 lib/appsignal/integrations/delayed_job.rb
appsignal-0.11.0.beta.1 lib/appsignal/integrations/delayed_job.rb
appsignal-0.10.6 lib/appsignal/integrations/delayed_job.rb
appsignal-0.10.5 lib/appsignal/integrations/delayed_job.rb
appsignal-0.10.4 lib/appsignal/integrations/delayed_job.rb
appsignal-0.10.3 lib/appsignal/integrations/delayed_job.rb
appsignal-0.10.2 lib/appsignal/integrations/delayed_job.rb
appsignal-0.10.1 lib/appsignal/integrations/delayed_job.rb
appsignal-0.10.0 lib/appsignal/integrations/delayed_job.rb
appsignal-0.10.0.beta.0 lib/appsignal/integrations/delayed_job.rb