Class: SolidQueueMonitor::RejectJobService

Inherits:
Object
  • Object
show all
Defined in:
app/services/solid_queue_monitor/reject_job_service.rb

Instance Method Summary collapse

Instance Method Details

#call(id) ⇒ Object



5
6
7
8
# File 'app/services/solid_queue_monitor/reject_job_service.rb', line 5

def call(id)
  execution = SolidQueue::ScheduledExecution.find(id)
  reject_job(execution)
end

#reject_many(ids) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'app/services/solid_queue_monitor/reject_job_service.rb', line 10

def reject_many(ids)
  return { success: false, message: 'No jobs selected' } if ids.blank?

  success_count = 0
  failed_count = 0

  ids.each do |id|
    execution = SolidQueue::ScheduledExecution.find_by(id: id)
    if execution
      reject_job(execution)
      success_count += 1
    else
      failed_count += 1
    end
  rescue StandardError
    failed_count += 1
  end

  if success_count.positive? && failed_count.zero?
    { success: true, message: 'All selected jobs have been rejected' }
  elsif success_count.positive? && failed_count.positive?
    { success: true, message: "#{success_count} jobs rejected, #{failed_count} failed" }
  else
    { success: false, message: 'Failed to reject jobs' }
  end
end