后台:停服维护
This commit is contained in:
@@ -102,11 +102,15 @@ export async function cancelMarquee(code: string) {
|
||||
|
||||
// —————————————— 停服维护 —————————————— //
|
||||
// 维护信息
|
||||
export async function initMaintenance() {
|
||||
const maintenance = await MaintenanceModel.findOpenMaintenance();
|
||||
export async function initMaintenance(maintenance?: MaintenanceType) {
|
||||
if(!maintenance)
|
||||
maintenance = await MaintenanceModel.findOpenMaintenance();
|
||||
if(maintenance) {
|
||||
let { startTime, marquee } = maintenance;
|
||||
if(marquee) await generateMarqueeSchedule(<MarqueeType>marquee);
|
||||
if(marquee) {
|
||||
let result = await generateMarqueeSchedule(<MarqueeType>marquee);
|
||||
console.log(result);
|
||||
}
|
||||
if(Date.now() > startTime.getTime()) {
|
||||
await startMaintenance(maintenance);
|
||||
} else {
|
||||
@@ -117,6 +121,7 @@ export async function initMaintenance() {
|
||||
}
|
||||
}
|
||||
|
||||
// 开启维护
|
||||
async function startMaintenance(maintenance: MaintenanceType, startJob?: Job) {
|
||||
// 向全服发送
|
||||
let { serverIds, notice } = maintenance;
|
||||
@@ -132,10 +137,31 @@ async function startMaintenance(maintenance: MaintenanceType, startJob?: Job) {
|
||||
await NoticeModel.updateNotice((<NoticeType>notice).id, { isEnable: true });
|
||||
}
|
||||
|
||||
// 更新connectorRemote里面的
|
||||
// 更新connectorRemote里面的维护服务器
|
||||
let connectorServers = pinus.app.getServersByType('connector');
|
||||
for(let { id } of connectorServers) {
|
||||
pinus.app.rpc.connector.connectorRemote.setServerMainten.toServer(id, serverIds);
|
||||
await pinus.app.rpc.connector.connectorRemote.setServerMainten.toServer(id, serverIds);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// 停止维护
|
||||
export async function stopMaintenance(maintenance: MaintenanceType) {
|
||||
let { serverIds, notice, marquee } = maintenance;
|
||||
// 更新serverlist上的status
|
||||
await ServerlistModel.updateByServerIds(serverIds, { serverStatus: SERVER_STATUS.HOT });
|
||||
// 更新notice的isEnable
|
||||
if(notice) {
|
||||
await NoticeModel.updateNotice((<NoticeType>notice).id, { isEnable: false });
|
||||
}
|
||||
|
||||
// 更新connectorRemote里面的维护服务器
|
||||
let connectorServers = pinus.app.getServersByType('connector');
|
||||
for(let { id } of connectorServers) {
|
||||
await pinus.app.rpc.connector.connectorRemote.setServerMainten.toServer(id, []);
|
||||
}
|
||||
|
||||
if(marquee) {
|
||||
await cancelMarquee((<MarqueeType>marquee).code);
|
||||
}
|
||||
if(startJob) startJob.cancel();
|
||||
}
|
||||
Reference in New Issue
Block a user