Class: SolidOps::JobsController

Inherits:
ApplicationController show all
Defined in:
app/controllers/solid_ops/jobs_controller.rb

Instance Method Summary collapse

Instance Method Details

#clear_finishedObject



52
53
54
55
56
# File 'app/controllers/solid_ops/jobs_controller.rb', line 52

def clear_finished
  count = SolidQueue::Job.where.not(finished_at: nil).count
  SolidQueue::Job.clear_finished_in_batches
  redirect_to queues_path, notice: "#{count} finished jobs cleared."
end

#destroyObject



58
59
60
61
62
# File 'app/controllers/solid_ops/jobs_controller.rb', line 58

def destroy
  job = SolidQueue::Job.find(params[:id])
  job.destroy
  redirect_to queues_path, notice: "Job #{params[:id]} deleted."
end

#discardObject



34
35
36
37
38
# File 'app/controllers/solid_ops/jobs_controller.rb', line 34

def discard
  job = SolidQueue::Job.find(params[:id])
  job.failed_execution&.discard
  redirect_back fallback_location: failed_jobs_path, notice: "Job #{job.id} discarded."
end

#discard_allObject



46
47
48
49
50
# File 'app/controllers/solid_ops/jobs_controller.rb', line 46

def discard_all
  count = SolidQueue::FailedExecution.count
  SolidQueue::FailedExecution.discard_all_in_batches
  redirect_to failed_jobs_path, notice: "#{count} failed jobs discarded."
end

#failedObject



20
21
22
23
24
25
26
# File 'app/controllers/solid_ops/jobs_controller.rb', line 20

def failed
  scope = SolidQueue::Job
          .joins(:failed_execution)
          .includes(:failed_execution)
          .order("solid_queue_failed_executions.created_at DESC")
  @failed_jobs = paginate(scope)
end

#retryObject



28
29
30
31
32
# File 'app/controllers/solid_ops/jobs_controller.rb', line 28

def retry
  job = SolidQueue::Job.find(params[:id])
  job.retry
  redirect_back fallback_location: failed_jobs_path, notice: "Job #{job.id} queued for retry."
end

#retry_allObject



40
41
42
43
44
# File 'app/controllers/solid_ops/jobs_controller.rb', line 40

def retry_all
  count = SolidQueue::FailedExecution.count
  SolidQueue::FailedExecution.find_each(batch_size: 100, &:retry)
  redirect_to failed_jobs_path, notice: "#{count} failed jobs queued for retry."
end

#runningObject



11
12
13
14
15
16
17
18
# File 'app/controllers/solid_ops/jobs_controller.rb', line 11

def running
  base = SolidQueue::Job
         .joins(:claimed_execution)
         .includes(:claimed_execution)
         .order("solid_queue_claimed_executions.created_at ASC")
  @running_count = base.count
  @running_jobs  = base.limit(500)
end

#showObject



7
8
9
# File 'app/controllers/solid_ops/jobs_controller.rb', line 7

def show
  @job = SolidQueue::Job.find(params[:id])
end