Class: RailsPulse::Adapters::SidekiqMiddleware

Inherits:
Object
  • Object
show all
Defined in:
lib/rails_pulse/adapters/sidekiq_middleware.rb

Instance Method Summary collapse

Instance Method Details

#call(worker, job_data, queue) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/rails_pulse/adapters/sidekiq_middleware.rb', line 6

def call(worker, job_data, queue)
  return yield unless RailsPulse.configuration.enabled
  return yield unless RailsPulse.configuration.track_jobs

  # Create ActiveJob-like wrapper for tracking
  job_wrapper = JobWrapper.new(
    job_id: job_data["jid"],
    class_name: worker.class.name,
    queue_name: queue,
    arguments: job_data["args"],
    enqueued_at: Time.at(job_data["enqueued_at"] || Time.current.to_f),
    executions: job_data["retry_count"] || 0
  )

  RailsPulse::JobRunCollector.track(job_wrapper, adapter: "sidekiq") do
    yield
  end
end