支持多台服务器同时执行任务+优化页面

一个定时任务可以允许多台服务器同时执行任务,优化页面关闭并刷新列表页
This commit is contained in:
georgehao
2019-04-16 23:40:07 +08:00
parent 07aff7ee72
commit 830d49ee1c
24 changed files with 391 additions and 137 deletions

View File

@@ -106,7 +106,7 @@ var $;
$.post('{{urlfor "AdminController.AjaxSave"}}', form_data, function (out) {
if (out.status == 0) {
layer.msg("操作成功",{icon: 1,shade:0.3,time:1000},function () {
window.location.reload()
window.parent.deleteCurrentTab();
})
} else {
layer.msg(out.message)

View File

@@ -113,7 +113,7 @@ var $;
$.post('{{urlfor "AdminController.AjaxSave"}}', form_data, function (out) {
if (out.status == 0) {
layer.msg("操作成功",{icon: 1,shade:0.3,time:1000},function () {
window.location.reload()
window.parent.deleteCurrentTab();
})
} else {
layer.msg(out.message)

View File

@@ -89,8 +89,7 @@
$.post('{{urlfor "NotifyTplController.AjaxSave"}}', form_data, function (out) {
if (out.status == 0) {
layer.msg("操作成功", {icon: 1, shade: 0.3, time: 1000}, function () {
// window.history.go(-1)//
window.location.reload()
window.parent.deleteCurrentTab();
})
} else {
layer.msg(out.message)

View File

@@ -89,8 +89,7 @@
$.post('{{urlfor "NotifyTplController.AjaxSave"}}', form_data, function (out) {
if (out.status == 0) {
layer.msg("操作成功", {icon: 1, shade: 0.3, time: 1000}, function () {
// window.history.go(-1)
window.location.reload()
window.parent.deleteCurrentTab();
})
} else {
layer.msg(out.message)

View File

@@ -26,7 +26,7 @@
{{.pageTitle}}
</div>
<div class="tr fr">
<button class="layui-btn layui-btn-radius layui-btn-primary layui-btn-xs" onclick="javascript:window.location.reload();"><i class="fa fa-refresh" aria-hidden="true"></i></button>
<button class="layui-btn layui-btn-radius layui-btn-primary layui-btn-xs" onclick="javascript:window.location.reload();"><i class="fa fa-refresh" aria-hidden="true" id="reload"></i></button>
</div>
</div>
<!-- 公共头部 end-->

View File

@@ -106,6 +106,29 @@
return str;
}
//新页面编辑或者新增,完成后关闭本页并刷新上一页
function deleteCurrentTab(){
//关闭
var lay_id = $(parent.document).find("ul.layui-tab-title").children("li.layui-this").find(".layui-tab-close");
lay_id.click();
//刷新
var currents =$(parent.document).find("div.layui-tab-content").find("div.layui-show").find("iframe").contents();
$(currents[0]).find("body").find("#reload").click();
}
function getCheckboxValue(name)
{
var arr = new Array();
$("input:checkbox[name="+name+"]:checked").each(function(){
console.log($(this).val());
arr.push($(this).val());
});
return arr.join(",");
}
function openTab(url,title,id,icon){
if (!url || !title || !id) {
@@ -235,6 +258,9 @@
layer.tips($(this).attr('data-title'), $(this),{time:1000});
});
element.render();
// $("#default_tab").html('<i class="fa fa-home back_space1"></i>系统首页');

View File

@@ -156,7 +156,7 @@
if (out.status == 0) {
layer.msg("操作成功",{icon: 1,shade:0.3,time:1000},function () {
// window.history.go(-1)//
window.location.reload()
window.parent.deleteCurrentTab();
})
} else {
layer.msg(out.message)

View File

@@ -154,7 +154,7 @@
if (out.status == 0) {
layer.msg("操作成功",{icon: 1,shade:0.3,time:1000},function () {
//window.location.href = "/server/list"
windwo.location.reload();
window.parent.deleteCurrentTab();
})
} else {
layer.msg(out.message)

View File

@@ -155,7 +155,9 @@
if (out.status == 0) {
layer.msg("操作成功",{icon: 1,shade:0.3,time:1000},function () {
// window.history.go(-1)
window.location.reload()
// window.location.reload()
window.parent.deleteCurrentTab();
})
} else {
layer.msg(out.message)

View File

@@ -27,19 +27,22 @@
<div class="layui-form-item">
<label class="layui-form-label mw200">服务器资源</label>
<div class="layui-inline">
<div class="layui-input-inline">
<select name="server_id">
<option value="0">本地服务器</option>
{{range $k, $v := .serverGroup}}
<optgroup label="{{$v.GroupName}}">
{{range $kk, $vv := $v.Servers}}
<option value="{{$kk}}">{{$vv}}</option>
<div class="layui-block">
<div class="layui-col-md3"></div>
<div class="layui-col-md9">
<div style="margin-bottom: 20px;">
<input type="checkbox" name="server_id" lay-skin="primary" title="本地服务器" value="0">
</div>
<div class="layui-row layui-col-space10">
{{range $k, $v := .serverGroup}}
<div class="layui-col-md12" style="background: #efefef;">{{$v.GroupName}}</div>
{{range $kk, $vv := $v.Servers}}
<div class="layui-col-md4">
<input type="checkbox" name="server_id" lay-skin="primary" title="{{$vv}}" value="{{$kk}}">
</div>
{{end}}
{{end}}
</optgroup>
{{end}}
</select>
</div>
</div>
</div>
</div>
@@ -129,7 +132,7 @@
<input type="checkbox" name="notify_user" lay-filter="notify_user" title="{{$v.RealName}}"
value="{{$v.Id}}" lay-skin="primary">
{{end}}
<input type="hidden" name="notify_user_ids" id="notify_user_ids" value="">
</div>
<div class="layui-form-mid layui-word-aux"></div>
</div>
@@ -159,7 +162,7 @@
layer.tips('设为的话如果该任务在上一个时间点还没执行完则略过不执行', '#des', {
tips: [1, '#0FA6D8'] //还可配置颜色
});
})
});
var notify_user_ids = [];
@@ -176,6 +179,7 @@
}
$("#notify_user_ids").val(notify_user_ids.join(","));
});
form.on('radio(is_notify)', function (data) {
if (data.value == 1) {
$(".notify").show()
@@ -185,12 +189,36 @@
});
form.on('submit(sub)', function (data) {
var form_data = data.field;
var server_arr = new Array();
$("input:checkbox[name=server_id]:checked").each(function(){
server_arr.push($(this).val());
});
form_data.server_ids = server_arr.join(",");
if (form_data.server_ids==="" || form_data.server_ids===null){
layer.msg("请选择服务器资源");
return false;
}
var notify_user_arr = new Array();
$("input:checkbox[name=notify_user]:checked").each(function(){
notify_user_arr.push($(this).val());
});
form_data.notify_user_ids = notify_user_arr.join(",");
if (form_data.is_notify==1 && form_data.notify_user_ids==="") {
layer.msg("请选择通知用户");
return false;
}
$.post('{{urlfor "TaskController.AjaxSave"}}', form_data, function (out) {
if (out.status == 0) {
layer.msg("操作成功", {icon: 1, shade: 0.3, time: 1000}, function () {
// window.history.go(-1)
window.location.reload();
window.parent.deleteCurrentTab();
})
} else {

View File

@@ -175,7 +175,7 @@
if (out.status == 0) {
layer.msg("复制成功!,请到列表中查看",{icon: 1,shade:0.3,time:1000},function () {
//self.location=document.referrer;
window.location.reload();
window.parent.deleteCurrentTab();
})
} else {
layer.msg(out.message)

View File

@@ -26,20 +26,24 @@
<div class="layui-form-item">
<label class="layui-form-label mw200">服务器资源</label>
<div class="layui-inline">
<div class="layui-input-inline">
<select name="server_id">
<option value="0">本地服务器</option>
{{range $k, $v := .serverGroup}}
<optgroup label="{{$v.GroupName}}">
{{range $kk, $vv := $v.Servers}}
<option value="{{$kk}}" {{if eq $kk $.task.ServerId}}selected{{end}} >{{$vv}}</option>
<div class="layui-block">
<div class="layui-col-md3"></div>
<div class="layui-col-md9">
<div style="margin-bottom: 20px;">
<input type="checkbox" name="server_id" lay-skin="primary" title="本地服务器" value="0" {{range $ks,$vs:=$.service_ids}} {{if eq 0 $vs}}checked{{end}}{{end}}>
</div>
<div class="layui-row layui-col-space10">
{{range $k, $v := .serverGroup}}
<div class="layui-col-md12" style="background: #efefef;">{{$v.GroupName}}</div>
{{range $kk, $vv := $v.Servers}}
<div class="layui-col-md4">
<input type="checkbox" name="server_id" lay-skin="primary" title="{{$vv}}" value="{{$kk}}" {{range $ks,$vs:=$.service_ids}} {{if eq $kk $vs}}checked{{end}}{{end}}>
</div>
{{end}}
{{end}}
</optgroup>
{{end}}
</select>
</div>
</div>
</div>
</div>
@@ -182,6 +186,7 @@
$("#notify_user_ids").val(notify_user_ids.join(","));
});
form.on('submit(sub)', function(data){
var isAdmin = "{{.isAdmin}}";
var msg = "编辑任务需要重新审核,是否确认需要编辑?";
@@ -193,15 +198,26 @@
}
layer.confirm(msg, {icon: 3, title:'提示'}, function(index){
layer.load();
var form_data = data.field;
var ids = [];
$("input[name=server_id][type=checkbox]").each(function() {
if ($(this).prop("checked")) {
ids.push($(this).val());
}
});
if (ids.length<1){
layer.msg("请选择服务资源");
return false;
}
form_data.server_ids = ids.join(",");
$.post('{{urlfor "TaskController.AjaxSave"}}', form_data, function (out) {
if (out.status == 0) {
layer.msg(okmsg,{icon: 1,shade:0.3,time:1000},function () {
// self.location=document.referrer;
window.location.reload();
window.parent.deleteCurrentTab();
})
} else {
layer.msg(out.message)
return

View File

@@ -50,6 +50,12 @@
<td>{{.taskLog.status|str2html}}</td>
<td></td>
</tr>
<tr>
<td>运行服务器</td>
<td>{{.taskLog.server_name}}</td>
<td></td>
</tr>
</tbody>
</table>

View File

@@ -46,12 +46,13 @@
,url: "/tasklog/table?task_id={{.task_id}}"
,cols: [[
{checkbox: true, fixed: true}
,{field:'id', title: 'ID', align:'center',sort: true, width:150}
,{field:'task_id', title: '任务ID', align:'center',sort: true, width:150}
// ,{field:'id', title: 'ID', align:'center',sort: true, width:150}
,{field:'task_id', title: '任务ID', align:'center',width:100}
,{field:'server_name', title: '服务器', width:150}
,{field:'start_time',title: '开始时间'}
,{field:'process_time',width:100, title: '执行时间'}
,{field:'output_size',title: '输出'}
,{field:'status', width:170,title: '状态'}
,{field:'status', width:100,title: '状态'}
,{fixed: 'right', align:'center', title:'操作', toolbar: '#bar'}
]]
,id: 'listReload'