Class: SolidStackWeb::QueuesController

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

Constant Summary

Constants inherited from ApplicationController

ApplicationController::PERIOD_DURATIONS

Instance Method Summary collapse

Instance Method Details

#indexObject



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# File 'app/controllers/solid_stack_web/queues_controller.rb', line 3

def index
  queue_names = ::SolidQueue::ReadyExecution.distinct.pluck(:queue_name)
  paused      = ::SolidQueue::Pause.pluck(:queue_name).to_set

  @queues = queue_names.sort.map do |name|
    {
      name:   name,
      size:   ::SolidQueue::ReadyExecution.where(queue_name: name).count,
      paused: paused.include?(name)
    }
  end

  @sparklines = @queues.each_with_object({}) do |queue, h|
    h[queue[:name]] = QueueDepthSparkline.new(queue[:name])
  end
end

#showObject



20
21
22
23
24
25
26
27
28
29
# File 'app/controllers/solid_stack_web/queues_controller.rb', line 20

def show
  @queue_name = params[:id]
  @paused     = ::SolidQueue::Pause.exists?(queue_name: @queue_name)
  @pagy, @executions = pagy(
    ::SolidQueue::ReadyExecution
      .where(queue_name: @queue_name)
      .includes(:job)
      .order(created_at: :desc)
  )
end