配置:去除stable服env的特殊处理

This commit is contained in:
luying
2021-12-08 14:59:01 +08:00
parent b51a2839da
commit 02c2096704
14 changed files with 66 additions and 75 deletions

View File

@@ -5,9 +5,6 @@ function main (){
return console.log('参数请填写环境变量');
}
let env = args[0];
if(args[0] == 'stable') {
env = 'production';
}
let configObject = {
env: env

View File

@@ -71,6 +71,20 @@ export class GmHandler {
return resResult(STATUS.SUCCESS,);
}
// 大区一起维护
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);
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);
return resResult(STATUS.SUCCESS,);
}
// 提前结束维护
async stopMaintenance(msg: { id: number }, session: BackendSession) {
const { id } = msg;

View File

@@ -261,22 +261,21 @@ export function _getActivities() {
export async function checkActivityEditable(activities: ActivityModelType[]) {
let now = new Date();
if(pinus.app.get('env') == 'production') {
for(let activity of activities) {
if(!activity || (activity.beginTime < now && activity.endTime > now)) {
if(activity.type == ACTIVITY_TYPE.SIGN_IN || activity.type == ACTIVITY_TYPE.SIGN_IN_VIP) {
// 签到活动的不显示期内也可以编辑
let signInObj = new SignInData(activity, 0);
if(signInObj.beginTime < now.getTime() && signInObj.endTime > now.getTime() ) {
return false;
}
} else {
for(let activity of activities) {
if(!activity || (activity.beginTime < now && activity.endTime > now)) {
if(activity.type == ACTIVITY_TYPE.SIGN_IN || activity.type == ACTIVITY_TYPE.SIGN_IN_VIP) {
// 签到活动的不显示期内也可以编辑
let signInObj = new SignInData(activity, 0);
if(signInObj.beginTime < now.getTime() && signInObj.endTime > now.getTime() ) {
return false;
}
} else {
return false;
}
}
}
return true;
}

View File

@@ -29,23 +29,21 @@ import { GMMailModel } from '../db/GMMail';
import { Maintenance, ServerlistModel, ServerlistType, ServerlistUpdate } from '../db/Serverlist';
import { getWorldChannelSid } from './chatService';
import { createMarqueeMsg, pushMarqueeMsg } from './sysChatService';
import { RegionModel, RegionType } from '../db/Region';
const PER_SECOND = 1 * 1000;
const PER_DAY = 24 * 60 * 60;
const PER_HOUR = 1 * 60 * 60;
const PER_MINUTE = 1 * 60;
var seasonMakeRewardTimJobId: Job;
var warJobId: Job;
var seasonRefreshTimeJobId: Job;
let guildWeeklyJobId: Job;
let guildActStartJobId: Job; // 军团活动开启后每10(or 1)秒循环的定时任务,到结束活动清除
let guildActSecondsJobId: Job; // 军团活动开启后每10(or 1)秒循环的定时任务,到结束活动清除
let guildActEndJobId: Job; // 军团活动开启后每10(or 1)秒循环的定时任务,到结束活动清除
let pvpMakeRewardInterval = null;
let pvpRefreshInterval = null;
/**
* 服务器启动即开启定时任务结算时常是23-24点实际结算的时间点是2331分钟
* 初始定时器
*/
export async function init() {
@@ -83,6 +81,7 @@ export async function init() {
await initMaintenance();
}
// —————————————— PVP 及赛季相关 —————————————— //
function getSeasonContinueDay(seasonNum: number) {
const pvpSeasonDuring = PVP.PVP_SEASON_DAYS.split('|').map(cur => {
let arr = cur.split('&');
@@ -197,7 +196,9 @@ export async function reportOnlineSchedule() {
}
}
// —————————————— PVP 及赛季相关 end —————————————— //
// —————————————— 军团活动 —————————————— //
/**
* 军团活动每晚8点开启
*/
@@ -343,6 +344,10 @@ export async function raceActivitySeconds() {
}
}
// —————————————— 军团活动 end —————————————— //
// —————————————— 拍卖行 —————————————— //
let startGuildAuctionJobId: Job;
let startWorldAuctionJobId: Job;
let stopAuctionJobId: Job;
@@ -383,7 +388,9 @@ function clearAuctionSchedule() {
}
}
// —————————————— 拍卖行 end —————————————— //
// —————————————— 邮件 —————————————— //
async function sendCircleMail() {
let gmmails = await GMMailModel.findCircleMails(pinus.app.get('env'));
for(let gmmail of gmmails) {
@@ -401,9 +408,9 @@ async function sendCircleMail() {
}
}
// —————————————— 邮件 end —————————————— //
/*** 维护 */
// —————————————— 维护 —————————————— //
let maintenInfos = new Map<string, { servers: ServerlistType[], maintenance: Maintenance }>(); // batchCode => {servers, maintenance}
export async function initMaintenance(servers?: ServerlistType[]) {
if(!servers) servers = await ServerlistModel.findByEnv(pinus.app.get('env'));
@@ -521,4 +528,11 @@ export async function stopMaintenance(batchCode: string, serverIds: number[]) {
pinus.app.rpc.guild.guildRemote.stopServerMainten.broadcast(serverIds);
pinus.app.rpc.order.orderRemote.stopServerMainten.broadcast(serverIds);
pinus.app.rpc.role.roleRemote.stopServerMainten.broadcast(serverIds);
}
}
// —————————————— 维护 end —————————————— //
// —————————————— 自动开服 —————————————— //
async function initAutoCreateServer(region?: RegionType) {
if(!region) region = await RegionModel.findRegionByEnv(pinus.app.get('env'));
}
// —————————————— 自动开服 end —————————————— //

View File

@@ -5,9 +5,6 @@ function main (){
return console.log('参数请填写环境变量');
}
let env = args[0];
if(args[0] == 'stable') {
env = 'production';
}
let configObject = {
env: env

View File

@@ -6,7 +6,7 @@ module.exports = {
'redispw': 'zyz_2020'
},
'production': {
'stable': {
'mongo': 'mongodb://dbop:zyzdbopbantu@dds-8vbdb47c6fb58a541.mongodb.zhangbei.rds.aliyuncs.com:3717,dds-8vbdb47c6fb58a542.mongodb.zhangbei.rds.aliyuncs.com:3717/zyz?replicaSet=mgset-500808098',
'gmmongo': 'mongodb://dbop:zyzGm2021@dds-8vb9964bb4cc7f241.mongodb.zhangbei.rds.aliyuncs.com:3717,dds-8vb9964bb4cc7f242.mongodb.zhangbei.rds.aliyuncs.com:3717/zyzgm?replicaSet=mgset-507933150',
'redis': 'r-8vb4i2kgl91886fkxd.redis.zhangbei.rds.aliyuncs.com',

View File

@@ -9,6 +9,11 @@ module.exports = {
'host': '127.0.0.1',
'port': 3005
},
'stable': {
'id': 'master-server-1',
'host': '127.0.0.1',
'port': 3005
},
'alpha': {
'id': 'master-server-1',
'host': '172.26.145.159',

View File

@@ -3,8 +3,8 @@ module.exports = {
'type': 'development',
'name': '本地服'
},
'production': {
'type': 'production',
'stable': {
'type': 'stable',
'name': '正式服'
},
'alpha': {

View File

@@ -50,7 +50,7 @@ module.exports = {
{ 'id': 'order-server-1', 'host': '127.0.0.1', 'port': 6060, "args": " --inspect=9242" },
]
},
'production': {
'stable': {
'connector': [
{ 'id': 'connector-server-1', 'port': 4050, 'clientHost': 'zyz_web.trgame.cn', 'host': '127.0.0.1', 'clientPort': 3050, 'frontend': true },
{ 'id': 'connector-server-2', 'port': 4051, 'clientHost': 'zyz_web.trgame.cn', 'host': '127.0.0.1', 'clientPort': 3051, 'frontend': true },

View File

@@ -35,20 +35,19 @@ export default class Activity extends Service {
let now = new Date();
let activity = await ActivityModel.findActivity(activityId);
if(this.app.config.env == 'production') {
if(!activity || (activity.beginTime < now && activity.endTime > now)) {
if(!activity || (activity.beginTime < now && activity.endTime > now)) {
if(activity.type == ACTIVITY_TYPE.SIGN_IN || activity.type == ACTIVITY_TYPE.SIGN_IN_VIP) {
// 签到活动的不显示期内也可以编辑
let signInObj = new SignInData(activity, 0);
if(signInObj.beginTime < now.getTime() && signInObj.endTime > now.getTime() ) {
return this.ctx.service.utils.resResult(STATUS.GM_CAN_NOT_EDIT_ACT);
}
} else {
if(activity.type == ACTIVITY_TYPE.SIGN_IN || activity.type == ACTIVITY_TYPE.SIGN_IN_VIP) {
// 签到活动的不显示期内也可以编辑
let signInObj = new SignInData(activity, 0);
if(signInObj.beginTime < now.getTime() && signInObj.endTime > now.getTime() ) {
return this.ctx.service.utils.resResult(STATUS.GM_CAN_NOT_EDIT_ACT);
}
} else {
return this.ctx.service.utils.resResult(STATUS.GM_CAN_NOT_EDIT_ACT);
}
}
return 0
}

View File

@@ -31,7 +31,6 @@ export default class GameController extends Controller {
let serverList = new Array<GroupParam>();
let loginServerList = new Array<ServerParamWithRole>();
console.log('****', ctx.app.config.realEnv)
let allServers = await ServerlistModel.findByEnv(ctx.app.config.realEnv);
let roles = await RoleModel.findAllByUid(uid, true, true);
for (let server of allServers) {

View File

@@ -1,12 +1,14 @@
import { STATUS } from '@consts';
import { ServerlistModel } from '@db/Serverlist';
import { nowSeconds } from 'app/pubUtils/timeUtil';
import { checkWhiteList } from 'app/pubUtils/util';
module.exports = () => {
return async function checkMainten(ctx, next) {
const { serverId } = ctx.request.body;
if (serverId) {
let maintenServers = await ctx.service.game.getServerMainten();
if (maintenServers.indexOf(serverId) != -1) {
let server = await ServerlistModel.findByServerId(serverId);
if (server && server.maintenance && server.maintenance.isOpen && server.maintenance.startTime < nowSeconds() && server.maintenance.endTime > nowSeconds()) {
let isWhiteList = await checkWhiteList(ctx.tel, ctx.request.ip);
if (isWhiteList) {
await next();

View File

@@ -1,33 +0,0 @@
import { Service } from 'egg';
/**
* Test Service
*/
export default class Game extends Service {
// public setServerMainten(maintenServers: number[]) {
// return this.app['maintenServers'] = maintenServers;
// }
public async getServerMainten() {
// // return this.app['maintenServers']||[];
// const maintenance = await MaintenanceModel.findOpenMaintenance();
// if(maintenance) {
// return maintenance.serverIds;
// } else {
// return [];
// }
return []
}
// public async readDbMaintenance() {
// const maintenance = await MaintenanceModel.findOpenMaintenance();
// if(maintenance) {
// this.setServerMainten(maintenance.serverIds);
// }
// }
}

View File

@@ -7,7 +7,6 @@ type AnyFunc<T = any> = (...args: any[]) => T;
type CanExportFunc = AnyFunc<Promise<any>> | AnyFunc<IterableIterator<any>>;
type AutoInstanceType<T, U = T extends CanExportFunc ? T : T extends AnyFunc ? ReturnType<T> : T> = U extends AnyClass ? InstanceType<U> : U;
import ExportAuth from '../../../app/service/Auth';
import ExportGame from '../../../app/service/Game';
import ExportSdk from '../../../app/service/Sdk';
import ExportTest from '../../../app/service/Test';
import ExportTurboCore from '../../../app/service/TurboCore';
@@ -17,7 +16,6 @@ import ExportUtils from '../../../app/service/Utils';
declare module 'egg' {
interface IService {
auth: AutoInstanceType<typeof ExportAuth>;
game: AutoInstanceType<typeof ExportGame>;
sdk: AutoInstanceType<typeof ExportSdk>;
test: AutoInstanceType<typeof ExportTest>;
turboCore: AutoInstanceType<typeof ExportTurboCore>;