diff --git a/game-server/app/services/guildService.ts b/game-server/app/services/guildService.ts index 2a91c5204..897d96292 100644 --- a/game-server/app/services/guildService.ts +++ b/game-server/app/services/guildService.ts @@ -82,13 +82,13 @@ export async function checkAuth(func: number, targetCode: string, guildAuth: num */ export async function joinGuild(code: string, guildName: string, lv: number, roleId: string, serverId: number, session: BackendSession) { - // 周结算锁 - let weeklySumLock = await lockDataNoRetry(serverId, DATA_NAME.WEEKLY_GUILD_SUM, code); - if (!!weeklySumLock.err) { - weeklySumLock.releaseCallback(); - return { status: -1, resResult: resResult(STATUS.GUILD_WEEKLY_SUM) }; - } - weeklySumLock.releaseCallback(); + // // 周结算锁 + // let weeklySumLock = await lockDataNoRetry(serverId, DATA_NAME.WEEKLY_GUILD_SUM, code); + // if (!!weeklySumLock.err) { + // weeklySumLock.releaseCallback(); + // return { status: -1, resResult: resResult(STATUS.GUILD_WEEKLY_SUM) }; + // } + // weeklySumLock.releaseCallback(); // 人数锁 let res: any = await lockData(serverId, DATA_NAME.JOIN_GUILD, code);// 加锁 @@ -356,10 +356,10 @@ export async function settleGuildWeekly() { // 周结算时,1. 不能变动memberCnt 2.玩家activeWeekly不能变动 3.公会activeWeekly不能变动 for (let { code, memberCnt, serverId } of guildList) { - let res: any = await lockDataNoRetry(serverId, DATA_NAME.WEEKLY_GUILD_SUM, code);//加锁 - if (!!res.err) { - await ErrLogModel.create(`settle guild lock data error: ${res.err}`) - } + // let res: any = await lockDataNoRetry(serverId, DATA_NAME.WEEKLY_GUILD_SUM, code);//加锁 + // if (!!res.err) { + // await ErrLogModel.create(`settle guild lock data error: ${res.err}`) + // } const userGuildList = await UserGuildModel.getListByGuild(code, 'roleId auth activeWeekly', { activeWeekly: -1, activeUpdateTime: 1 }); let otherMemberCnt = 0; // 除了大将军以外从活跃高到底成员人数,用户计算活跃排名百分比 @@ -405,7 +405,7 @@ export async function settleGuildWeekly() { } await GuildModel.updateInfo(code, { activeWeekly: 0 }, {}); - res.releaseCallback();//解锁 + // res.releaseCallback();//解锁 } await initSingleRank(REDIS_KEY.GUILD_ACTIVE_RANK); await initSingleRank(REDIS_KEY.GUILD_LV_RANK); diff --git a/game-server/app/services/redLockService.ts b/game-server/app/services/redLockService.ts index 1fabec45e..fffce86ff 100644 --- a/game-server/app/services/redLockService.ts +++ b/game-server/app/services/redLockService.ts @@ -84,7 +84,7 @@ async function lock(lockKey: string) { return new Promise((resolve) => { _redlockCache.redlock.lock(lockKey, _redlockCache.ttl, function(err, lock) { if(err) { - return resolve({ err }) + return resolve({ err, releaseCallback: releaseCallback.bind(null, lockKey) }) } setLock(lockKey, lock); return resolve({err: null, releaseCallback: releaseCallback.bind(null, lockKey)}); @@ -116,6 +116,6 @@ function lockNoRetry(lockKey: string) { return {err: null, releaseCallback: releaseCallback.bind(null, lockKey)}; }).catch(function(err) { console.error(err); - return { err }; + return { err, releaseCallback: releaseCallback.bind(null, lockKey) }; }); } \ No newline at end of file