From 8125552d5d44c0a861f6b6e40cfa30ac66cdad8a Mon Sep 17 00:00:00 2001 From: suwings Date: Sat, 2 Jun 2018 14:05:21 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=20-=20=E8=AE=A1=E5=88=92?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E8=B7=AF=E7=94=B1=E5=9F=BA=E7=A1=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/Process/Mcserver.js | 2 ++ helper/Schedule.js | 2 +- route/websocket/schedule.js | 65 +++++++++++++++++++++++++++++++++++++ 3 files changed, 68 insertions(+), 1 deletion(-) create mode 100644 route/websocket/schedule.js diff --git a/core/Process/Mcserver.js b/core/Process/Mcserver.js index 9cc98c23..fb540032 100644 --- a/core/Process/Mcserver.js +++ b/core/Process/Mcserver.js @@ -16,7 +16,9 @@ class MinecraftServer extends ServerProcess { this.dataModel.name = name; //服务器名字 this.dataModel.createDate = now; //创建时间 this.dataModel.lastDate = now; //最后启动时间 + this.dataModel.autoRestart = false; //是否自动重启 + this.dataModel.schedule = {}; //计划任务配置项目 this.properties = undefined; //服务端配置表 diff --git a/helper/Schedule.js b/helper/Schedule.js index e44da43b..4f197141 100644 --- a/helper/Schedule.js +++ b/helper/Schedule.js @@ -14,7 +14,7 @@ module.exports.createScheduleJob = (id, time, callback) => { } //计次型任务 -module.exports.createScheduleJobCount = (id, time, callback, count) => { +module.exports.createScheduleJobCount = (id, time, count, callback) => { let lco = 0; let mask = MCSERVER.Schedule.container[id] = schedule.scheduleJob(time, (fireDate) => { if (lco >= count) { diff --git a/route/websocket/schedule.js b/route/websocket/schedule.js new file mode 100644 index 00000000..e01f0dfc --- /dev/null +++ b/route/websocket/schedule.js @@ -0,0 +1,65 @@ +const { + WebSocketObserver +} = require('../../model/WebSocketModel'); +const permssion = require('../../helper/Permission'); +const schedulejob = require('../../helper/Schedule'); +const UUID = require('uuid'); +const tools = require('../core/tools'); +const serverModel = require('../../model/ServerModel'); + + +let e = { + servername: "xxxxxx", + commande: "xxxxxx", + timestr: "", + count: 0 +} + +function CreateScheduleJob(obj) { + let id = tools.randomString(6) + "_" + new Date().getTime(); + if (obj.count <= 0) { + schedulejob.createScheduleJob(id, obj.timestr, () => { + + }); + } else { + schedulejob.createScheduleJobCount(id, obj.timestr, obj.count, () => { + + }); + } +} + +//列出计划任务 +WebSocketObserver().listener('schedule/list', (data) => { + let username = data.WsSession.username; + let servername = data.body; + + if (permssion.isCanServer(username, servername)) { + let thisServer = serverModel.ServerManager().getServer(servername); + } else { + MCSERVER.log('权限不足!'); + } +}); + +//创建计划任务 +WebSocketObserver().listener('schedule/create', (data) => { + let username = data.WsSession.username; + let obj = JSON.parse(data.body); + + if (permssion.isCanServer(username, obj.servername || "")) { + CreateScheduleJob(obj); + } else { + MCSERVER.log('权限不足!'); + } +}); + +//删除计划任务 +WebSocketObserver().listener('schedule/delete', (data) => { + let username = data.WsSession.username; + let obj = JSON.parse(data.body); + + if (permssion.isCanServer(username, obj.servername || "")) { + schedulejob.deleteScheduleJob(obj.id); + } else { + MCSERVER.log('权限不足!2'); + } +}); \ No newline at end of file