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
|