Module: Sidekiq::QueueStats::WebExtension

Defined in:
lib/sidekiq/queue_stats/web_extension.rb

Class Method Summary collapse

Class Method Details

.registered(app) ⇒ Object



5
6
7
8
9
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
36
# File 'lib/sidekiq/queue_stats/web_extension.rb', line 5

def self.registered(app)
  view_path = File.join(File.expand_path("..", __FILE__), "views")

  app.get "/queue_stats" do
    @queues = Sidekiq::Queue.all.map(&:name)
    @workers = {}

    if params[:queue] == "all"
      Sidekiq::Queue.all.each do |q|
        @workers[q.name] = {}
        total = q.map{|cue| cue.klass}
        klasses = total.uniq
        klasses.each do |klass|
          @workers[q.name][klass] = total.count(klass)
        end
      end
    else
      @queue = params[:queue] ? Sidekiq::Queue.new(params[:queue]) : Sidekiq::Queue.new
      @workers[@queue.name] = {}

      total = @queue.map{|cue| cue.klass}
      klasses = total.uniq
      if klasses
        klasses.each do |klass|
          @workers[@queue.name][klass] = total.count(klass)
        end
      end
    end

    render(:erb, File.read(File.join(view_path, "queue_stats.erb")))
  end
end