Skip to content

Commit 757c8c3

Browse files
committed
Mustache'd /queues page
1 parent 75de411 commit 757c8c3

File tree

3 files changed

+142
-49
lines changed

3 files changed

+142
-49
lines changed
Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
{{#queue?}}
2+
<h1>Pending jobs on <span class='hl'>{{queue}}</span></h1>
3+
4+
<form method="POST" action="{{remove_queue_url}}" class='remove-queue'>
5+
<input type='submit' name='' value='Remove Queue' />
6+
</form>
7+
8+
<p class='sub'>
9+
Showing {{start}}
10+
to
11+
{{end}}
12+
of
13+
<b>{{size}}</b>
14+
jobs
15+
</p>
16+
17+
<table class='jobs'>
18+
<tr>
19+
<th>Class</th>
20+
<th>Args</th>
21+
</tr>
22+
23+
{{#jobs}}
24+
<tr>
25+
<td class='class'>{{class}}</td>
26+
<td class='args'>{{args}}</td>
27+
</tr>
28+
{{/jobs}}
29+
30+
{{#no_jobs}}
31+
<tr>
32+
<td class='no-data' colspan='2'>
33+
There are no pending jobs in this queue
34+
</td>
35+
</tr>
36+
{{/no_jobs}}
37+
</table>
38+
39+
{{> next_more}}
40+
{{/queue?}}
41+
42+
{{#queues?}}
43+
<h1 class='wi'>Queues</h1>
44+
45+
<p class='intro'>
46+
The list below contains all the registered queues with the number
47+
of jobs currently in the queue. Select a queue from above to view
48+
all jobs currently pending on the queue.
49+
</p>
50+
51+
<table class='queues'>
52+
<tr>
53+
<th>Name</th>
54+
<th>Jobs</th>
55+
</tr>
56+
57+
{{#queues}}
58+
<tr>
59+
<td class='queue'>
60+
<a class="queue" href="{{queue_url}}">{{queue}}</a>
61+
</td>
62+
<td class='size'>{{size}}</td>
63+
</tr>
64+
{{/queues}}
65+
66+
<tr class="{{failure_class}}">
67+
<td class='queue failed'>
68+
<a class="queue" href="{{failed_url}}">failed</a>
69+
</td>
70+
<td class='size'>{{failed_count}}</td>
71+
</tr>
72+
</table>
73+
{{/queues?}}

lib/resque/server/views/queues.erb

Lines changed: 0 additions & 49 deletions
This file was deleted.

lib/resque/server/views/queues.rb

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
module Resque
2+
module Views
3+
class Queues < Layout
4+
def subtabs
5+
Resque.queues
6+
end
7+
8+
def queues?
9+
!queue?
10+
end
11+
12+
def queues
13+
Resque.queues.sort_by { |q| q.to_s }.map do |queue|
14+
{ :queue => queue }
15+
end
16+
end
17+
18+
def queue?
19+
queue && { :queue => queue }
20+
end
21+
22+
def queue
23+
params[:id]
24+
end
25+
26+
def queue_url
27+
u "queues/#{self[:queue]}"
28+
end
29+
30+
def remove_queue_url
31+
u "/queues/#{queue}"
32+
end
33+
34+
def start
35+
params[:start].to_i
36+
end
37+
38+
def end
39+
start + 20
40+
end
41+
42+
def size
43+
Resque.size(queue || self[:queue])
44+
end
45+
46+
def jobs
47+
Resque.peek(queue, start, 20).map do |job|
48+
job.merge('args' => job['args'].inspect)
49+
end
50+
end
51+
52+
def no_jobs
53+
jobs.empty?
54+
end
55+
56+
def failure_class
57+
failed_count.zero? ? :failed : :failure
58+
end
59+
60+
def failed_count
61+
Resque::Failure.count
62+
end
63+
64+
def failed_url
65+
url :failed
66+
end
67+
end
68+
end
69+
end

0 commit comments

Comments
 (0)