File size: 696 Bytes
def1299
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
class HealthController < ApplicationController
  def workers
    Resque.workers.first.try(:prune_dead_workers) if params[:prune_dead_workers] == "true"

    queues = Hash.new { |h, k| h[k] = [] }
    Resque.workers.each do |worker|
      worker.queues.each do |queue|
        queues[queue] << worker
      end
    end

    json = []
    Resque.queues.each do |queue|
      workers = queues[queue]
      json << {
        queue: queue,
        size: Resque.size(queue),
        available: workers.count,
        idle: workers.count { |w| w.idle? },
        working: workers.count { |w| w.working? },
        paused: workers.count { |w| w.paused? }
      }
    end

    render json: json
  end
end