服务器:修复白名单bug

This commit is contained in:
luying
2022-01-10 18:13:27 +08:00
parent 002ca4f8db
commit 5641d8fdfa
8 changed files with 34 additions and 24 deletions

View File

@@ -64,6 +64,7 @@ export class GmHandler {
async startMaintenance(msg: { id: number, startTime: number, endTime: number, hasNotify: boolean }, session: BackendSession) {
const { id, startTime, endTime, hasNotify } = msg;
if(!id || !isNumber(startTime) || !isNumber(endTime)) return resResult(STATUS.WRONG_PARMS);
if(endTime < nowSeconds()) return resResult(STATUS.WRONG_PARMS, '结束时间不能比现在早');
const uid = session.get('uid');
let newMaintenance: Maintenance = { batchCode: genCode(10), startTime, endTime, hasNotify, isOpen: true }
let server = await ServerlistModel.updateByServerId(id, { maintenance: newMaintenance });
@@ -76,10 +77,10 @@ export class GmHandler {
async startRegionMaintenance(msg: { startTime: number, endTime: number, hasNotify: boolean }, session: BackendSession) {
const { startTime, endTime, hasNotify } = msg;
if(!isNumber(startTime) || !isNumber(endTime)) return resResult(STATUS.WRONG_PARMS);
if(endTime < nowSeconds()) return resResult(STATUS.WRONG_PARMS, '结束时间不能比现在早');
const uid = session.get('uid');
let newMaintenance: Maintenance = { batchCode: genCode(10), startTime, endTime, hasNotify, isOpen: true }
let servers = await ServerlistModel.findByEnv(this.app.get('env'));
console.log('*********servers', servers)
await ServerlistModel.updateByServerIds(servers.map(server => server.id), { maintenance: newMaintenance });
await pinus.app.rpc.systimer.systimerRemote.initMaintenance.broadcast(servers);

View File

@@ -62,26 +62,33 @@ async function startMarquee(marquee: MarqueeType, startJob?: Job) {
startJob = undefined;
}
} else {
await pushMarqueeMsg(msgDatas);
console.log('***', marquee.interval)
let secondsJob = scheduleJob(`setSeconds${marquee.code}`, `*/${marquee.interval} * * * * *`, async () => {
console.log(`*****setSeconds${marquee.code}****`)
if(marquee.endTime > nowSeconds()) {
await pushMarqueeMsg(msgDatas);
});
let endJob = scheduleJob(`end${marquee.code}`, marquee.endTime * 1000, async () => {
console.log('***', marquee.interval)
let secondsJob = scheduleJob(`setSeconds${marquee.code}`, `*/${marquee.interval} * * * * *`, async () => {
console.log(`*****setSeconds${marquee.code}****`)
await pushMarqueeMsg(msgDatas);
});
let endJob = scheduleJob(`end${marquee.code}`, marquee.endTime * 1000, async () => {
if(startJob) {
startJob.cancel();
startJob = undefined;
}
if(secondsJob) {
secondsJob.cancel();
secondsJob = undefined;
}
if(endJob) {
endJob.cancel();
endJob = undefined;
}
});
} else {
if(startJob) {
startJob.cancel();
startJob = undefined;
}
if(secondsJob) {
secondsJob.cancel();
secondsJob = undefined;
}
if(endJob) {
endJob.cancel();
endJob = undefined;
}
});
}
}
}

View File

@@ -437,13 +437,17 @@ export async function initMaintenance(servers?: ServerlistType[]) {
// 设置维护
async function setMaintenance(batchCode: string) {
let { maintenance } = maintenInfos.get(batchCode);
console.log('***** maintenance', maintenance);
let now = nowSeconds();
// 发送消息
if(maintenance.hasNotify && now < maintenance.startTime) {
if(now > maintenance.startTime - 5 * 60) {
maintenanceNotifySchedule(batchCode);
} else {
scheduleJob(`maintenNotify${batchCode}`, maintenance.startTime - 5 * 60, () => {
scheduleJob(`maintenNotify${batchCode}`, (maintenance.startTime - 5 * 60) * 1000, () => {
console.log('******* 通知')
maintenanceNotifySchedule(batchCode);
})
}