class Skylight::Core::Probes::DelayedJob::Probe
Constants
- UNKNOWN
Public Instance Methods
handle_failed_job(job, error, *args)
click to toggle source
# File lib/skylight/core/probes/delayed_job.rb, line 32 def handle_failed_job(job, error, *args) handle_failed_job_without_sk(job, error, *args) return unless Skylight.trace Skylight.trace.segment = "error" end
install()
click to toggle source
# File lib/skylight/core/probes/delayed_job.rb, line 7 def install return unless validate_version ::Delayed::Worker.class_eval do include Skylight::Core::Util::Logging alias_method :run_without_sk, :run alias_method :handle_failed_job_without_sk, :handle_failed_job def run(job, *args) t { "Delayed::Job beginning trace" } handler_name = begin if defined?(::Delayed::PerformableMethod) && job.payload_object.is_a?(::Delayed::PerformableMethod) job.name else job.payload_object.class.name end rescue UNKNOWN end Skylight.trace(handler_name, "app.delayed_job.worker", "Delayed::Worker#run", component: :worker, segment: job.queue) do run_without_sk(job, *args) end end def handle_failed_job(job, error, *args) handle_failed_job_without_sk(job, error, *args) return unless Skylight.trace Skylight.trace.segment = "error" end end end
run(job, *args)
click to toggle source
# File lib/skylight/core/probes/delayed_job.rb, line 14 def run(job, *args) t { "Delayed::Job beginning trace" } handler_name = begin if defined?(::Delayed::PerformableMethod) && job.payload_object.is_a?(::Delayed::PerformableMethod) job.name else job.payload_object.class.name end rescue UNKNOWN end Skylight.trace(handler_name, "app.delayed_job.worker", "Delayed::Worker#run", component: :worker, segment: job.queue) do run_without_sk(job, *args) end end
Private Instance Methods
validate_version()
click to toggle source
# File lib/skylight/core/probes/delayed_job.rb, line 42 def validate_version spec = Gem.loaded_specs["delayed_job"] version = spec && spec.version if !version || version < Gem::Version.new("4.0.0") $stderr.puts "[SKYLIGHT::CORE] [#{Skylight::Core::VERSION}] The installed version of DelayedJob is not supported on Skylight. Your jobs will not be tracked." return false end true end