Class: Asyncapi::Server::JobWorker

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

Instance Method Summary collapse

Instance Method Details

#perform(job_id) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
# File 'app/workers/asyncapi/server/job_worker.rb', line 7

def perform(job_id)
  job = Job.find(job_id)
  runner_class = job.class_name.constantize

  job_status = :success
  job_message = runner_class.call(job.params)
rescue => e
  job_status = :error
  job_message = [e.message, e.backtrace].flatten.join("\n")
  raise e
ensure
  job.update_attributes(status: job_status)
  report_job_status(job, job_message)
end