Module: AngryBatch::Handle

Extended by:
Handle
Included in:
Handle
Defined in:
lib/angry_batch/handle.rb

Instance Method Summary collapse

Instance Method Details

#job_completed(job) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/angry_batch/handle.rb', line 6

def job_completed(job)
  record = AngryBatch::Job.find_by(active_job_idx: job.job_id)

  return if record.blank?

  record.with_lock do
    return if record.failed?

    record.update!(state: 'completed')
  end

  record.batch&.check_status_of_jobs
rescue ActiveRecord::RecordNotFound
  nil
end

#job_failed(job, exception = nil) ⇒ Object



22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/angry_batch/handle.rb', line 22

def job_failed(job, exception = nil)
  record = AngryBatch::Job.find_by(active_job_idx: job.job_id)

  return if record.blank?

  record.with_lock do
    return if record.completed?

    record.update!(state: 'failed', error_message: exception&.message)
  end

  record.batch&.check_status_of_jobs
rescue ActiveRecord::RecordNotFound
  nil
end