BaseSecrete/rorvswild

View on GitHub
lib/rorvswild/plugin/delayed_job.rb

Summary

Maintainability
A
0 mins
Test Coverage
module RorVsWild
  module Plugin
    module DelayedJob
      def self.setup
        return if @installed
        return unless defined?(Delayed::Plugin)
        Delayed::Worker.plugins << Class.new(Delayed::Plugin) do
          callbacks do |lifecycle|
            lifecycle.around(:invoke_job) do |job, *args, &block|
              RorVsWild.agent.measure_job(job.name, parameters: job.payload_object) { block.call(job) }
            end
          end
        end
        @installed = true
      end
    end
  end
end