sbd-npm 1.4.8 → 1.4.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/status.js +83 -4
package/package.json
CHANGED
package/status.js
CHANGED
@@ -38,6 +38,9 @@ $(function () {
|
|
38
38
|
case "task":
|
39
39
|
Status.handle_task();
|
40
40
|
break;
|
41
|
+
case "worker":
|
42
|
+
Status.handle_worker();
|
43
|
+
break;
|
41
44
|
case "tool":
|
42
45
|
Status.handle_tool();
|
43
46
|
break;
|
@@ -161,15 +164,21 @@ $(function () {
|
|
161
164
|
|
162
165
|
handle_process: function () {
|
163
166
|
if (!document.getElementById("process_div_body")) {
|
167
|
+
let prefix_caption = "";
|
168
|
+
if (Util.is_mobile()) {
|
169
|
+
prefix_caption = "<caption> ";
|
170
|
+
} else {
|
171
|
+
prefix_caption = '<caption class="text-right">';
|
172
|
+
}
|
164
173
|
Util.init_table_skeleton({
|
165
174
|
"element_id": "process_div",
|
166
|
-
"caption": '
|
175
|
+
"caption": prefix_caption + '共 <span class="label label-info" id="process_num"></span> 进程, <input checked type="checkbox" id="is_py_process"> 只显示 Python 进程</caption>',
|
167
176
|
"head_cols": [
|
168
177
|
{"name": "进程ID", "table_sort": 1},
|
169
178
|
{"name": "进程名", "table_sort": 1},
|
170
179
|
{"name": "用户名", "table_sort": 1},
|
171
180
|
{"name": "状态", "table_sort": 1},
|
172
|
-
{"name": "实际内存", "table_sort": 1, "title": "resident set size"},
|
181
|
+
{"name": "实际内存", "class": "info", "table_sort": 1, "title": "resident set size"},
|
173
182
|
{"name": "虚拟内存", "table_sort": 1},
|
174
183
|
{"name": "启动命令"},
|
175
184
|
{"name": "创建时间", "table_sort": 1},
|
@@ -197,7 +206,7 @@ $(function () {
|
|
197
206
|
html.push("<td>", Util.seconds_to_format(item["create_time"]), "</td>");
|
198
207
|
html.push("</tr>");
|
199
208
|
});
|
200
|
-
|
209
|
+
Util.render_table_html("process_div_body", html);
|
201
210
|
$("#process_num").html(process_num);
|
202
211
|
Util.hide_tips();
|
203
212
|
});
|
@@ -398,7 +407,7 @@ $(function () {
|
|
398
407
|
|
399
408
|
handle_task: function () {
|
400
409
|
if (!document.getElementById("task_content")) {
|
401
|
-
let ht_html =[];
|
410
|
+
let ht_html = [];
|
402
411
|
ht_html.push('<div class="page-header" style="margin-top: 15px; text-align: center;">');
|
403
412
|
ht_html.push('<div class="form-inline">');
|
404
413
|
ht_html.push('<div class="form-group">');
|
@@ -510,6 +519,76 @@ $(function () {
|
|
510
519
|
});
|
511
520
|
},
|
512
521
|
|
522
|
+
handle_worker: function () {
|
523
|
+
let is_init = 0;
|
524
|
+
if (!document.getElementById("workers")) {
|
525
|
+
is_init = 1;
|
526
|
+
let hw_html = [];
|
527
|
+
hw_html.push('<form class="form-inline">');
|
528
|
+
hw_html.push('<div class="form-group">');
|
529
|
+
hw_html.push('<select id="workers" class="form-control">');
|
530
|
+
hw_html.push('<option value="">Loading...</option>');
|
531
|
+
hw_html.push('</select>');
|
532
|
+
hw_html.push('</div>');
|
533
|
+
hw_html.push('</form>');
|
534
|
+
hw_html.push('<div id="worker_process_div"></div>');
|
535
|
+
$("#worker_div").html(hw_html.join(""));
|
536
|
+
}
|
537
|
+
Util.post(location.pathname, {active_div: localStorage[Status.tab_token], is_init: is_init, key: $("#workers").val()}, function (j) {
|
538
|
+
if (j["workers"]) {
|
539
|
+
let select_html = [];
|
540
|
+
select_html.push("<option value=''>共 ", j["workers"].length, " 个Worker</option>");
|
541
|
+
j["workers"].forEach(function (w) {
|
542
|
+
select_html.push("<option value='", w["key"], "'>", w["ip"], "</option>");
|
543
|
+
});
|
544
|
+
$("#workers").html(select_html.join(""));
|
545
|
+
if (j["workers"].length > 0) {
|
546
|
+
$("#workers").change(function() {
|
547
|
+
let worker_key = $(this).val();
|
548
|
+
if (worker_key) {
|
549
|
+
Util.set_table_loading("worker_process_div_body");
|
550
|
+
Status.handle_worker();
|
551
|
+
}
|
552
|
+
});
|
553
|
+
}
|
554
|
+
} else if (j["process"]) {
|
555
|
+
if (!document.getElementById("worker_process_div_body")) {
|
556
|
+
let prefix_caption = "";
|
557
|
+
if (Util.is_mobile()) {
|
558
|
+
prefix_caption = "<caption id='worker_process_tip'> ";
|
559
|
+
} else {
|
560
|
+
prefix_caption = '<caption id="worker_process_tip" class="text-right">';
|
561
|
+
}
|
562
|
+
Util.init_table_skeleton({
|
563
|
+
"element_id": "worker_process_div",
|
564
|
+
"caption": prefix_caption + '</caption>',
|
565
|
+
"head_cols": [
|
566
|
+
{"name": "进程ID", "table_sort": 1},
|
567
|
+
{"name": "用户名", "table_sort": 1},
|
568
|
+
{"name": "状态", "table_sort": 1},
|
569
|
+
{"name": "启动命令"},
|
570
|
+
{"name": "创建时间", "class": "info", "table_sort": 1},
|
571
|
+
]
|
572
|
+
});
|
573
|
+
}
|
574
|
+
let html = [], process_num = 0;
|
575
|
+
j["process"].forEach(function (item) {
|
576
|
+
process_num++;
|
577
|
+
html.push("<tr>");
|
578
|
+
html.push("<td>", item["pid"], "</td>");
|
579
|
+
html.push("<td>", item["username"], "</td>");
|
580
|
+
html.push("<td>", item["status"], "</td>");
|
581
|
+
html.push("<td title='", item["cmdline"], "'>", Util.sub_str(item["cmdline"], 60), "</td>");
|
582
|
+
html.push("<td>", Util.seconds_to_format(item["create_time"]), "</td>");
|
583
|
+
html.push("</tr>");
|
584
|
+
});
|
585
|
+
Util.render_table_html("worker_process_div_body", html);
|
586
|
+
$("#worker_process_tip").html('共 <span class="label label-info">' + process_num + '</span> 进程,最后更新时间:' + Util.seconds_to_format(j["date"]));
|
587
|
+
}
|
588
|
+
Util.hide_tips();
|
589
|
+
});
|
590
|
+
},
|
591
|
+
|
513
592
|
handle_tool: function () {
|
514
593
|
let t_obj = $("#timestamp");
|
515
594
|
let t_val = t_obj.val();
|