Class: SolidQueue::TerminatedExecution

Inherits:
Execution
  • Object
show all
Defined in:
lib/solid_terminator/terminated_execution.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.record_termination(active_job) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
# File 'lib/solid_terminator/terminated_execution.rb', line 7

def self.record_termination(active_job)
  sq_job = SolidQueue::Job.find_by(active_job_id: active_job.job_id)
  return nil unless sq_job

  create!(job_id: sq_job.id, queue_name: sq_job.queue_name, priority: sq_job.priority, terminated_at: Time.current)
rescue StandardError => e
  SolidTerminator.configuration.logger.error(
    "Failed to record termination for job #{active_job.job_id}: #{e.class}: #{e.message}"
  )
  nil
end

Instance Method Details

#retryObject



19
20
21
22
23
24
25
# File 'lib/solid_terminator/terminated_execution.rb', line 19

def retry
  active_job = ActiveJob::Base.deserialize(job.arguments)
  transaction do
    destroy!
    active_job.enqueue
  end
end