Class: SolidOps::QueuesController

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

Instance Method Summary collapse

Instance Method Details

#indexObject



7
8
9
10
11
12
13
14
15
16
17
# File 'app/controllers/solid_ops/queues_controller.rb', line 7

def index
  @queues = queue_stats
  @paused_queues = SolidQueue::Pause.all.map(&:queue_name)
  @total_jobs = SolidQueue::Job.count
  @ready_count = SolidQueue::ReadyExecution.count
  @scheduled_count = SolidQueue::ScheduledExecution.count
  @claimed_count = SolidQueue::ClaimedExecution.count
  @failed_count = SolidQueue::FailedExecution.count
  @blocked_count = SolidQueue::BlockedExecution.count
  @finished_count = SolidQueue::Job.where.not(finished_at: nil).count
end

#pauseObject



29
30
31
32
33
34
# File 'app/controllers/solid_ops/queues_controller.rb', line 29

def pause
  SolidQueue::Pause.create!(queue_name: params[:id])
  redirect_to queues_path, notice: "Queue '#{params[:id]}' paused."
rescue ActiveRecord::RecordNotUnique
  redirect_to queues_path, notice: "Queue '#{params[:id]}' is already paused."
end

#resumeObject



36
37
38
39
# File 'app/controllers/solid_ops/queues_controller.rb', line 36

def resume
  SolidQueue::Pause.where(queue_name: params[:id]).delete_all
  redirect_to queues_path, notice: "Queue '#{params[:id]}' resumed."
end

#showObject



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

def show
  @queue_name = params[:id]
  @paused = SolidQueue::Pause.exists?(queue_name: @queue_name)
  @jobs = paginate(SolidQueue::Job.where(queue_name: @queue_name).order(created_at: :desc))
  @ready_count = SolidQueue::ReadyExecution.where(queue_name: @queue_name).count
  @scheduled_count = SolidQueue::ScheduledExecution.joins(:job).where(solid_queue_jobs: { queue_name: @queue_name }).count
  @claimed_count = SolidQueue::ClaimedExecution.joins(:job).where(solid_queue_jobs: { queue_name: @queue_name }).count
  @failed_count = SolidQueue::FailedExecution.joins(:job).where(solid_queue_jobs: { queue_name: @queue_name }).count
end