Class: Asyncapi::Client::JobStatusWorker

Inherits:
Object
  • Object
show all
Includes:
Sidekiq::Worker
Defined in:
app/workers/asyncapi/client/job_status_worker.rb

Constant Summary collapse

STATUS_CALLBACK_MAP =
{
  queued: :on_queue,
  success: :on_success,
  error: :on_error,
  timed_out: :on_time_out,
  queue_error: :on_queue_error,
}.with_indifferent_access

Instance Method Summary collapse

Instance Method Details

#perform(job_id) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
26
# File 'app/workers/asyncapi/client/job_status_worker.rb', line 15

def perform(job_id)
  job = Job.find(job_id)
  callback_method = STATUS_CALLBACK_MAP[job.status]
  return if callback_method.nil?
  class_name = job.send(callback_method)
  begin
    callback_class = class_name.constantize
  rescue NameError
    return
  end
  callback_class.call(job.id)
end