beanstalkd_view 0.1.6 → 0.1.7
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +20 -7
- data/lib/beanstalkd_view/resources/bootstrap/css/overrides.css +23 -0
- data/lib/beanstalkd_view/resources/js/json2.js +487 -0
- data/lib/beanstalkd_view/resources/js/peek_jobs.js +94 -7
- data/lib/beanstalkd_view/server.rb +19 -0
- data/lib/beanstalkd_view/version.rb +1 -1
- data/lib/beanstalkd_view/views/index.erb +254 -3
- data/lib/beanstalkd_view/views/layout.erb +1 -0
- data/lib/beanstalkd_view/views/tube_stats.erb +17 -17
- metadata +18 -19
- data/lib/beanstalkd_view/views/general_stats.erb +0 -220
- data/lib/beanstalkd_view/views/tubes.erb +0 -25
@@ -15,6 +15,11 @@ $(document).ready(function() {
|
|
15
15
|
peek('buried');
|
16
16
|
});
|
17
17
|
}
|
18
|
+
if ($("#add_job_btn").length > 0) {
|
19
|
+
$("#add_job_btn").click(function() {
|
20
|
+
add_job();
|
21
|
+
});
|
22
|
+
}
|
18
23
|
|
19
24
|
function peek(queue) {
|
20
25
|
var tube = document.getElementById("form_tube_name").value;
|
@@ -33,6 +38,70 @@ $(document).ready(function() {
|
|
33
38
|
.error(function() { alert("An error occurred while trying to peek at the next job."); })
|
34
39
|
}
|
35
40
|
|
41
|
+
function add_job() {
|
42
|
+
var tube = document.getElementById("form_tube_name").value;
|
43
|
+
var priority = document.getElementById("form_job_priority").value;
|
44
|
+
var delay = document.getElementById("form_job_delay").value;
|
45
|
+
var ttr = document.getElementById("form_job_ttr").value;
|
46
|
+
var body = document.getElementById("form_job_body").value;
|
47
|
+
// Use defaults if empty
|
48
|
+
if (tube == "") {
|
49
|
+
tube = "default";
|
50
|
+
document.getElementById("form_tube_name").value = tube;
|
51
|
+
}
|
52
|
+
if (priority == "") {
|
53
|
+
priority = "65536";
|
54
|
+
document.getElementById("form_job_priority").value = priority;
|
55
|
+
}
|
56
|
+
if (delay == "") {
|
57
|
+
delay = "0"
|
58
|
+
document.getElementById("form_job_delay").value = delay;
|
59
|
+
}
|
60
|
+
if (ttr == "") {
|
61
|
+
ttr = "120"
|
62
|
+
document.getElementById("form_job_ttr").value = ttr;
|
63
|
+
}
|
64
|
+
if (body == "") {
|
65
|
+
body = "{}";
|
66
|
+
document.getElementById("form_job_body").value = body;
|
67
|
+
}
|
68
|
+
//Ensure valid body JSON
|
69
|
+
var parsed_body_json = null;
|
70
|
+
var body_parse_error = null;
|
71
|
+
try {
|
72
|
+
parsed_body_json = JSON.parse(body);
|
73
|
+
if (parsed_body_json.constructor == Array) {
|
74
|
+
throw "Job Body JSON must be a Hash"
|
75
|
+
}
|
76
|
+
} catch(e) {
|
77
|
+
body_parse_error = e;
|
78
|
+
}
|
79
|
+
if (body_parse_error != null) {
|
80
|
+
alert("Job Body JSON parse error: "+body_parse_error);
|
81
|
+
} else {
|
82
|
+
// Build the confirmation popup
|
83
|
+
data = {};
|
84
|
+
data["pri"] = priority;
|
85
|
+
data["delay"] = delay;
|
86
|
+
data["ttr"] = ttr;
|
87
|
+
data["body"] = JSON.stringify([tube, parsed_body_json]);
|
88
|
+
$("#job_info_popup_title").html(create_new_job_title());
|
89
|
+
$("#job_info_popup_body").html(create_job_info_table(data));
|
90
|
+
$("#job_info_popup_footer").html(create_new_job_buttons());
|
91
|
+
$("#confirm_add_job_btn").click(function() {
|
92
|
+
$("#add_job_form").submit();
|
93
|
+
});
|
94
|
+
$("[rel=tooltip]").tooltip(); //refresh tooltips
|
95
|
+
$("#job_info_popup").modal({});
|
96
|
+
}
|
97
|
+
}
|
98
|
+
|
99
|
+
function create_new_job_buttons() {
|
100
|
+
var job_info_buttons = "";
|
101
|
+
job_info_buttons += "<a id=\"confirm_add_job_btn\" href=\"javascript:false\" class=\"btn\">Add Job</a>";
|
102
|
+
return job_info_buttons;
|
103
|
+
}
|
104
|
+
|
36
105
|
function create_job_info_buttons(tube, data, url_base) {
|
37
106
|
var job_id = data["id"];
|
38
107
|
var priority = data["pri"];
|
@@ -40,6 +109,10 @@ $(document).ready(function() {
|
|
40
109
|
job_info_buttons += "<a href=\""+url_base+"delete/"+tube+"/"+job_id+"\" class=\"btn\">Delete Job</a>";
|
41
110
|
return job_info_buttons;
|
42
111
|
}
|
112
|
+
|
113
|
+
function create_new_job_title() {
|
114
|
+
return "<h3>Add new job?</h3>";
|
115
|
+
}
|
43
116
|
|
44
117
|
function create_job_info_title(data) {
|
45
118
|
var id = data["id"];
|
@@ -51,15 +124,29 @@ $(document).ready(function() {
|
|
51
124
|
var job_info_table = "<table class=\"table\">";
|
52
125
|
job_info_table += "<tbody>";
|
53
126
|
job_info_table += create_job_info_row("pri", data["pri"], "The priority value set by the put, release, or bury commands.");
|
54
|
-
|
127
|
+
if ("age" in data) {
|
128
|
+
job_info_table += create_job_info_row("age", data["age"], "The time in seconds since the put command that created this job.");
|
129
|
+
}
|
55
130
|
job_info_table += create_job_info_row("delay", data["delay"], "The delay value in seconds");
|
56
131
|
job_info_table += create_job_info_row("ttr", data["ttr"], "The number of seconds to allow a worker to run this job. This time is counted from the moment a worker reserves this job. If the worker does not delete, release, or bury the job within ttr seconds, the job will time out and the server will release the job.");
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
132
|
+
if ("time-left" in data) {
|
133
|
+
job_info_table += create_job_info_row("time-left", data["time-left"], "The number of seconds left until the server puts this job into the ready queue. This number is only meaningful if the job is reserved or delayed. If the job is reserved and this amount of time elapses before its state changes, it is considered to have timed out.");
|
134
|
+
}
|
135
|
+
if ("reserves" in data) {
|
136
|
+
job_info_table += create_job_info_row("reserves", data["reserves"], "The number of times this job has been reserved");
|
137
|
+
}
|
138
|
+
if ("timeouts" in data) {
|
139
|
+
job_info_table += create_job_info_row("timeouts", data["timeouts"], "The number of times this job has timed out during a reservation.");
|
140
|
+
}
|
141
|
+
if ("releases" in data) {
|
142
|
+
job_info_table += create_job_info_row("releases", data["releases"], "The number of times a client has released this job from a reservation.");
|
143
|
+
}
|
144
|
+
if ("buries" in data) {
|
145
|
+
job_info_table += create_job_info_row("buries", data["buries"], " The number of times this job has been buried.");
|
146
|
+
}
|
147
|
+
if ("kicks" in data) {
|
148
|
+
job_info_table += create_job_info_row("kicks", data["kicks"], "The number of times this job has been kicked.");
|
149
|
+
}
|
63
150
|
job_info_table += create_job_info_row("body", data["body"], "The jobs body content.");
|
64
151
|
job_info_table += "</tbody>";
|
65
152
|
job_info_table += "</table>";
|
@@ -16,6 +16,25 @@ module BeanstalkdView
|
|
16
16
|
end
|
17
17
|
end
|
18
18
|
|
19
|
+
post "/add_job" do
|
20
|
+
begin
|
21
|
+
response = nil
|
22
|
+
body = JSON.parse(params[:body])
|
23
|
+
beanstalk.on_tube(params[:tube]) do |conn|
|
24
|
+
response = conn.put([ params[:tube], body ].to_json, params[:priority].to_i, params[:delay].to_i, params[:ttr].to_i)
|
25
|
+
end
|
26
|
+
if response
|
27
|
+
session[:message] = "Added job #{response.inspect}"
|
28
|
+
redirect url("/")
|
29
|
+
else
|
30
|
+
session[:message] = "Error adding job"
|
31
|
+
redirect url("/")
|
32
|
+
end
|
33
|
+
rescue Beanstalk::NotConnected => @error
|
34
|
+
erb :error
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
19
38
|
get "/tube/:tube" do
|
20
39
|
begin
|
21
40
|
@stats = beanstalk.stats_tube(params[:tube])
|
@@ -1,5 +1,256 @@
|
|
1
|
-
<
|
1
|
+
<div class="row">
|
2
|
+
<div class="span6">
|
3
|
+
<h1>Overview</h1>
|
2
4
|
|
3
|
-
|
5
|
+
<table class="table">
|
6
|
+
<thead>
|
7
|
+
<tr>
|
8
|
+
<th>Server</th>
|
9
|
+
<th>Tubes</th>
|
10
|
+
</tr>
|
11
|
+
</thead>
|
12
|
+
<tbody>
|
13
|
+
<% @tubes.keys.each do |key| %>
|
14
|
+
<% @tubes[key].each do |tube| %>
|
15
|
+
<tr>
|
16
|
+
<td><%= key %></td>
|
17
|
+
<td><a href="<%= url("/tube/#{tube}") %>"><%= tube %></a></td>
|
18
|
+
</tr>
|
19
|
+
<% end %>
|
20
|
+
<% end %>
|
21
|
+
</tbody>
|
22
|
+
</table>
|
4
23
|
|
5
|
-
|
24
|
+
<table class="table">
|
25
|
+
<thead>
|
26
|
+
<tr>
|
27
|
+
<th colspan="2">Current Jobs</th>
|
28
|
+
</tr>
|
29
|
+
</thead>
|
30
|
+
<tbody>
|
31
|
+
<tr rel="tooltip" title="The number of ready jobs with priority < 1024.">
|
32
|
+
<td>Urgent</td>
|
33
|
+
<% if @stats["current-jobs-urgent"] > 0 %>
|
34
|
+
<td class="data_cell"><span class="badge badge-warning"><%= @stats["current-jobs-urgent"] %></span></td>
|
35
|
+
<% else %>
|
36
|
+
<td class="data_cell"><%= @stats["current-jobs-urgent"] %></td>
|
37
|
+
<% end %>
|
38
|
+
</tr>
|
39
|
+
<tr rel="tooltip" title="The number of jobs in the ready queue.">
|
40
|
+
<td>Ready</td>
|
41
|
+
<td class="data_cell"><%= @stats["current-jobs-ready"] %></td>
|
42
|
+
</tr>
|
43
|
+
<tr rel="tooltip" title="The number of jobs reserved by all clients.">
|
44
|
+
<td>Reserved</td>
|
45
|
+
<td class="data_cell"><%= @stats["current-jobs-reserved"] %></td>
|
46
|
+
</tr>
|
47
|
+
<tr rel="tooltip" title="The number of delayed jobs.">
|
48
|
+
<td>Delayed</td>
|
49
|
+
<td class="data_cell"><%= @stats["current-jobs-delayed"] %></td>
|
50
|
+
</tr>
|
51
|
+
<tr rel="tooltip" title="he number of buried jobs.">
|
52
|
+
<td>Buried</td>
|
53
|
+
<% if @stats["current-jobs-buried"] > 0 %>
|
54
|
+
<td class="data_cell"><span class="badge badge-error"><%= @stats["current-jobs-buried"] %></span></td>
|
55
|
+
<% else %>
|
56
|
+
<td class="data_cell"><%= @stats["current-jobs-buried"] %></td>
|
57
|
+
<% end %>
|
58
|
+
</tr>
|
59
|
+
</tbody>
|
60
|
+
</table>
|
61
|
+
|
62
|
+
<table class="table">
|
63
|
+
<thead>
|
64
|
+
<tr>
|
65
|
+
<th colspan="2">Statistics</th>
|
66
|
+
</tr>
|
67
|
+
</thead>
|
68
|
+
<tbody>
|
69
|
+
<tr rel="tooltip" title="The cumulative count of times a job has timed out.">
|
70
|
+
<td>Job Timeouts</td>
|
71
|
+
<td class="data_cell"><%= @stats["job-timeouts"] %></td>
|
72
|
+
</tr>
|
73
|
+
<tr rel="tooltip" title="The cumulative count of jobs created.">
|
74
|
+
<td>Total Jobs</td>
|
75
|
+
<td class="data_cell"><%= @stats["total-jobs"] %></td>
|
76
|
+
</tr>
|
77
|
+
<tr rel="tooltip" title="The maximum number of bytes in a job.">
|
78
|
+
<td>Max Job Size</td>
|
79
|
+
<td class="data_cell"><%= @stats["max-job-size"] %></td>
|
80
|
+
</tr>
|
81
|
+
<tr rel="tooltip" title="The number of currently open connections.">
|
82
|
+
<td>Current Connections</td>
|
83
|
+
<td class="data_cell"><%= @stats["current-connections"] %></td>
|
84
|
+
</tr>
|
85
|
+
<tr rel="tooltip" title="The number of open connections that have each issued at least one put command.">
|
86
|
+
<td>Current Producers</td>
|
87
|
+
<td class="data_cell"><%= @stats["current-producers"] %></td>
|
88
|
+
</tr>
|
89
|
+
<tr rel="tooltip" title="The number of open connections that have each issued at least one reserve command.">
|
90
|
+
<td>Current Workers</td>
|
91
|
+
<td class="data_cell"><%= @stats["current-workers"] %></td>
|
92
|
+
</tr>
|
93
|
+
<tr rel="tooltip" title="The number of open connections that have issued a reserve command but not yet received a response.">
|
94
|
+
<td>Current Waiting</td>
|
95
|
+
<td class="data_cell"><%= @stats["current-waiting"] %></td>
|
96
|
+
</tr>
|
97
|
+
<tr rel="tooltip" title="The cumulative count of connections.">
|
98
|
+
<td>Total Connections</td>
|
99
|
+
<td class="data_cell"><%= @stats["total-connections"] %></td>
|
100
|
+
</tr>
|
101
|
+
<tr rel="tooltip" title="The process id of the server.">
|
102
|
+
<td>pid</td>
|
103
|
+
<td class="data_cell"><%= @stats["pid"] %></td>
|
104
|
+
</tr>
|
105
|
+
<tr rel="tooltip" title="The version string of the server.">
|
106
|
+
<td>Version</td>
|
107
|
+
<td class="data_cell"><%= @stats["version"] %></td>
|
108
|
+
</tr>
|
109
|
+
<tr rel="tooltip" title="The accumulated user CPU time of this process in seconds and microseconds.">
|
110
|
+
<td>rusage-utime</td>
|
111
|
+
<td class="data_cell"><%= @stats["rusage-utime"] %></td>
|
112
|
+
</tr>
|
113
|
+
<tr rel="tooltip" title="The accumulated system CPU time of this process in seconds and microseconds.">
|
114
|
+
<td>rusage-stime</td>
|
115
|
+
<td class="data_cell"><%= @stats["rusage-stime"] %></td>
|
116
|
+
</tr>
|
117
|
+
<tr rel="tooltip" title="The number of seconds since this server started running.">
|
118
|
+
<td>Uptime</td>
|
119
|
+
<td class="data_cell"><%= @stats["uptime"] %></td>
|
120
|
+
</tr>
|
121
|
+
</tbody>
|
122
|
+
</table>
|
123
|
+
|
124
|
+
<table class="table">
|
125
|
+
<thead>
|
126
|
+
<tr>
|
127
|
+
<th colspan="2">Binlog</th>
|
128
|
+
</tr>
|
129
|
+
</thead>
|
130
|
+
<tbody>
|
131
|
+
<tr rel="tooltip" title="The index of the oldest binlog file needed to store the current jobs.">
|
132
|
+
<td>Oldest Index</td>
|
133
|
+
<td class="data_cell"><%= @stats["binlog-oldest-index"] %></td>
|
134
|
+
</tr>
|
135
|
+
<tr rel="tooltip" title="The index of the current binlog file being written to. If binlog is not active this value will be 0.">
|
136
|
+
<td>Current Index</td>
|
137
|
+
<td class="data_cell"><%= @stats["binlog-current-index"] %></td>
|
138
|
+
</tr>
|
139
|
+
<tr rel="tooltip" title="The maximum size in bytes a binlog file is allowed to get before a new binlog file is opened.">
|
140
|
+
<td>Max Size</td>
|
141
|
+
<td class="data_cell"><%= @stats["binlog-max-size"] %></td>
|
142
|
+
</tr>
|
143
|
+
</tbody>
|
144
|
+
</table>
|
145
|
+
|
146
|
+
<hr/>
|
147
|
+
|
148
|
+
<table class="table">
|
149
|
+
<thead>
|
150
|
+
<tr>
|
151
|
+
<th colspan="2">API Call Histogram</th>
|
152
|
+
</tr>
|
153
|
+
</thead>
|
154
|
+
<tbody>
|
155
|
+
<tr rel="tooltip" title="The cumulative number of put commands.">
|
156
|
+
<td>put</td>
|
157
|
+
<td class="data_cell"><%= @stats["cmd-put"] %></td>
|
158
|
+
</tr>
|
159
|
+
<tr rel="tooltip" title="The cumulative number of peek commands.">
|
160
|
+
<td>peek</td>
|
161
|
+
<td class="data_cell"><%= @stats["cmd-peek"] %></td>
|
162
|
+
</tr>
|
163
|
+
<tr rel="tooltip" title="The cumulative number of peek-ready commands.">
|
164
|
+
<td>peek-ready</td>
|
165
|
+
<td class="data_cell"><%= @stats["cmd-peek-ready"] %></td>
|
166
|
+
</tr>
|
167
|
+
<tr rel="tooltip" title="The cumulative number of peek-delayed commands.">
|
168
|
+
<td>peek-delayed</td>
|
169
|
+
<td class="data_cell"><%= @stats["cmd-peek-delayed"] %></td>
|
170
|
+
</tr>
|
171
|
+
<tr rel="tooltip" title="The cumulative number of peek-buried commands.">
|
172
|
+
<td>peek-buried</td>
|
173
|
+
<td class="data_cell"><%= @stats["cmd-peek-buried"] %></td>
|
174
|
+
</tr>
|
175
|
+
<tr rel="tooltip" title="The cumulative number of reserve commands.">
|
176
|
+
<td>reserve</td>
|
177
|
+
<td class="data_cell"><%= @stats["cmd-reserve"] %></td>
|
178
|
+
</tr>
|
179
|
+
<tr rel="tooltip" title="The cumulative number of use commands.">
|
180
|
+
<td>use</td>
|
181
|
+
<td class="data_cell"><%= @stats["cmd-use"] %></td>
|
182
|
+
</tr>
|
183
|
+
<tr rel="tooltip" title="The cumulative number of watch commands.">
|
184
|
+
<td>watch</td>
|
185
|
+
<td class="data_cell"><%= @stats["cmd-watch"] %></td>
|
186
|
+
</tr>
|
187
|
+
<tr rel="tooltip" title="The cumulative number of ignore commands.">
|
188
|
+
<td>ignore</td>
|
189
|
+
<td class="data_cell"><%= @stats["cmd-ignore"] %></td>
|
190
|
+
</tr>
|
191
|
+
<tr rel="tooltip" title="The cumulative number of delete commands.">
|
192
|
+
<td>delete</td>
|
193
|
+
<td class="data_cell"><%= @stats["cmd-delete"] %></td>
|
194
|
+
</tr>
|
195
|
+
<tr rel="tooltip" title="The cumulative number of release commands.">
|
196
|
+
<td>release</td>
|
197
|
+
<td class="data_cell"><%= @stats["cmd-release"] %></td>
|
198
|
+
</tr>
|
199
|
+
<tr rel="tooltip" title="The cumulative number of bury commands.">
|
200
|
+
<td>bury</td>
|
201
|
+
<td class="data_cell"><%= @stats["cmd-bury"] %></td>
|
202
|
+
</tr>
|
203
|
+
<tr rel="tooltip" title="The cumulative number of kick commands.">
|
204
|
+
<td>kick</td>
|
205
|
+
<td class="data_cell"><%= @stats["cmd-kick"] %></td>
|
206
|
+
</tr>
|
207
|
+
<tr rel="tooltip" title="The cumulative number of stats commands.">
|
208
|
+
<td>stats</td>
|
209
|
+
<td class="data_cell"><%= @stats["cmd-stats"] %></td>
|
210
|
+
</tr>
|
211
|
+
<tr rel="tooltip" title="The cumulative number of stats-job commands.">
|
212
|
+
<td>stats-job</td>
|
213
|
+
<td class="data_cell"><%= @stats["cmd-stats-job"] %></td>
|
214
|
+
</tr>
|
215
|
+
<tr rel="tooltip" title="The cumulative number of stats-tube commands.">
|
216
|
+
<td>stats-tube</td>
|
217
|
+
<td class="data_cell"><%= @stats["cmd-stats-tube"] %></td>
|
218
|
+
</tr>
|
219
|
+
<tr rel="tooltip" title="The cumulative number of list-tubes commands.">
|
220
|
+
<td>list-tubes</td>
|
221
|
+
<td class="data_cell"><%= @stats["cmd-list-tubes"] %></td>
|
222
|
+
</tr>
|
223
|
+
<tr rel="tooltip" title="The cumulative number of list-tube-used commands.">
|
224
|
+
<td>list-tube-used</td>
|
225
|
+
<td class="data_cell"><%= @stats["cmd-list-tube-used"] %></td>
|
226
|
+
</tr>
|
227
|
+
<tr rel="tooltip" title="The cumulative number of list-tubes-watched commands.">
|
228
|
+
<td>list-tubes-watched</td>
|
229
|
+
<td class="data_cell"><%= @stats["cmd-list-tubes-watched"] %></td>
|
230
|
+
</tr>
|
231
|
+
<tr rel="tooltip" title="The cumulative number of pause-tube commands.">
|
232
|
+
<td>pause-tube</td>
|
233
|
+
<td class="data_cell"><%= @stats["cmd-pause-tube"] %></td>
|
234
|
+
</tr>
|
235
|
+
</tbody>
|
236
|
+
</table>
|
237
|
+
</div>
|
238
|
+
|
239
|
+
<div class="span6">
|
240
|
+
<div class="span6">
|
241
|
+
<h3>Add Job</h3>
|
242
|
+
<form id="add_job_form" class="well" name="add_job_form" action="<%= url('/add_job') %>" method="POST">
|
243
|
+
<input id="form_tube_name" type="text" class="span3" placeholder="Tube name" name="tube">
|
244
|
+
<input id="form_job_priority" type="text" class="span3" placeholder="Priority, e.g. 65536" name="priority">
|
245
|
+
<input id="form_job_delay" type="text" class="span3" placeholder="Delay, e.g. 0" name="delay">
|
246
|
+
<input id="form_job_ttr" type="text" class="span3" placeholder="TTR, e.g. 120" name="ttr">
|
247
|
+
<label class="control-label" for="textarea">Job Body JSON Hash, e.g. {} or {"id": 1, "name": "Bob"}</label>
|
248
|
+
<textarea id="form_job_body" class="input-xlarge" name="body" rows="3"></textarea>
|
249
|
+
<br/>
|
250
|
+
<a id="add_job_btn" href="javascript:false" class="btn">Add Job</a>
|
251
|
+
</form>
|
252
|
+
</div>
|
253
|
+
</div>
|
254
|
+
</div>
|
255
|
+
|
256
|
+
<%= erb :job_info_popup %>
|
@@ -8,6 +8,7 @@
|
|
8
8
|
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
|
9
9
|
<script type="text/javascript" src="<%= url('/resources/js/jquery-1.7.1.min.js') %>"></script>
|
10
10
|
<script type="text/javascript" src="<%= url('/resources/bootstrap/js/bootstrap.min.js') %>"></script>
|
11
|
+
<script type="text/javascript" src="<%= url('/resources/js/json2.js') %>"></script>
|
11
12
|
<script type="text/javascript" src="<%= url('/resources/js/peek_jobs.js') %>"></script>
|
12
13
|
<script type="text/javascript">
|
13
14
|
<!-- Enable Tooltips -->
|
@@ -12,29 +12,29 @@
|
|
12
12
|
<tr rel="tooltip" title="The number of ready jobs with priority < 1024 in this tube.">
|
13
13
|
<td>Urgent</td>
|
14
14
|
<% if @stats["current-jobs-urgent"] > 0 %>
|
15
|
-
<td><span class="badge badge-warning"><%= @stats["current-jobs-urgent"] %></span></td>
|
15
|
+
<td class="data_cell"><span class="badge badge-warning"><%= @stats["current-jobs-urgent"] %></span></td>
|
16
16
|
<% else %>
|
17
|
-
<td><%= @stats["current-jobs-urgent"] %></td>
|
17
|
+
<td class="data_cell"><%= @stats["current-jobs-urgent"] %></td>
|
18
18
|
<% end %>
|
19
19
|
</tr>
|
20
20
|
<tr rel="tooltip" title="The number of jobs in the ready queue in this tube.">
|
21
21
|
<td>Ready</td>
|
22
|
-
<td><%= @stats["current-jobs-ready"] %></td>
|
22
|
+
<td class="data_cell"><%= @stats["current-jobs-ready"] %></td>
|
23
23
|
</tr>
|
24
24
|
<tr rel="tooltip" title="The number of jobs reserved by all clients in this tube.">
|
25
25
|
<td>Reserved</td>
|
26
|
-
<td><%= @stats["current-jobs-reserved"] %></td>
|
26
|
+
<td class="data_cell"><%= @stats["current-jobs-reserved"] %></td>
|
27
27
|
</tr>
|
28
28
|
<tr rel="tooltip" title="The number of delayed jobs in this tube.">
|
29
29
|
<td>Delayed</td>
|
30
|
-
<td><%= @stats["current-jobs-delayed"] %></td>
|
30
|
+
<td class="data_cell"><%= @stats["current-jobs-delayed"] %></td>
|
31
31
|
</tr>
|
32
32
|
<tr rel="tooltip" title="The number of buried jobs in this tube.">
|
33
33
|
<td>Buried</td>
|
34
34
|
<% if @stats["current-jobs-buried"] > 0 %>
|
35
|
-
<td><span class="badge badge-error"><%= @stats["current-jobs-buried"] %></span></td>
|
35
|
+
<td class="data_cell"><span class="badge badge-error"><%= @stats["current-jobs-buried"] %></span></td>
|
36
36
|
<% else %>
|
37
|
-
<td><%= @stats["current-jobs-buried"] %></td>
|
37
|
+
<td class="data_cell"><%= @stats["current-jobs-buried"] %></td>
|
38
38
|
<% end %>
|
39
39
|
</tr>
|
40
40
|
</tbody>
|
@@ -49,22 +49,22 @@
|
|
49
49
|
<tbody>
|
50
50
|
<tr rel="tooltip" title="The cumulative count of jobs created in this tube.">
|
51
51
|
<td>Total Jobs</td>
|
52
|
-
<td><%= @stats["total-jobs"] %></td>
|
52
|
+
<td class="data_cell"><%= @stats["total-jobs"] %></td>
|
53
53
|
</tr>
|
54
54
|
<tr rel="tooltip" title="The number of open connections that have issued a reserve command while watching this tube but not yet received a response.">
|
55
55
|
<td>Current Waiting</td>
|
56
|
-
<td><%= @stats["current-waiting"] %></td>
|
56
|
+
<td class="data_cell"><%= @stats["current-waiting"] %></td>
|
57
57
|
</tr>
|
58
58
|
<tr rel="tooltip" title="The number of seconds the tube has been paused for.">
|
59
59
|
<td>Time Paused</td>
|
60
|
-
<td><%= @stats["pause"] %></td>
|
60
|
+
<td class="data_cell"><%= @stats["pause"] %></td>
|
61
61
|
</tr>
|
62
62
|
<tr rel="tooltip" title="The number of seconds until the tube is un-paused.">
|
63
63
|
<td>Pause Time Left</td>
|
64
64
|
<% if @stats["pause-time-left"] > 0 %>
|
65
|
-
<td><span class="badge badge-warning"><%= @stats["pause-time-left"] %></span></td>
|
65
|
+
<td class="data_cell"><span class="badge badge-warning"><%= @stats["pause-time-left"] %></span></td>
|
66
66
|
<% else %>
|
67
|
-
<td><%= @stats["pause-time-left"] %></td>
|
67
|
+
<td class="data_cell"><%= @stats["pause-time-left"] %></td>
|
68
68
|
<% end %>
|
69
69
|
</tr>
|
70
70
|
</tbody>
|
@@ -79,14 +79,14 @@
|
|
79
79
|
<tbody>
|
80
80
|
<tr rel="tooltip" title="The cumulative number of pause-tube commands for this tube.">
|
81
81
|
<td>pause-tube</td>
|
82
|
-
<td><%= @stats["cmd-pause-tube"] %></td>
|
82
|
+
<td class="data_cell"><%= @stats["cmd-pause-tube"] %></td>
|
83
83
|
</tr>
|
84
84
|
</tbody>
|
85
85
|
</table>
|
86
86
|
</div>
|
87
87
|
|
88
88
|
<div class="span6">
|
89
|
-
|
89
|
+
<h3>Pause Tube</h3>
|
90
90
|
<form class="well form-inline" name="pause_form" action="<%= url('/pause') %>" method="POST">
|
91
91
|
<input id="form_tube_name" type="hidden" name="tube" value="<%= @stats["name"] %>">
|
92
92
|
<input id="form_url_base" type="hidden" name="url_base" value="<%= url('/') %>">
|
@@ -94,16 +94,16 @@
|
|
94
94
|
<button type="submit" class="btn">Pause</button>
|
95
95
|
</form>
|
96
96
|
|
97
|
-
|
97
|
+
<h3>Kick Tube</h3>
|
98
98
|
<form class="well form-inline" name="kick_form" action="<%= url('/kick') %>" method="POST">
|
99
99
|
<input type="hidden" name="tube" value="<%= @stats["name"] %>">
|
100
100
|
<input type="text" class="span3" placeholder="Number of jobs" name="bound">
|
101
101
|
<button type="submit" class="btn">Kick</button>
|
102
102
|
</form>
|
103
103
|
|
104
|
-
|
104
|
+
<h3>Peek Jobs</h3>
|
105
105
|
<form class="well" name="peek_jobs">
|
106
|
-
|
106
|
+
<a id="peek_ready_btn" href="javascript:false" class="btn">Peek Ready</a>
|
107
107
|
<a id="peek_delayed_btn" href="javascript:false" class="btn">Peek Delayed</a>
|
108
108
|
<a id="peek_buried_btn" href="javascript:false" class="btn">Peek Buried</a>
|
109
109
|
</form>
|