🐞 fix(redlock): 删除没有意义的锁
This commit is contained in:
@@ -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) {
|
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);
|
// let weeklySumLock = await lockDataNoRetry(serverId, DATA_NAME.WEEKLY_GUILD_SUM, code);
|
||||||
if (!!weeklySumLock.err) {
|
// if (!!weeklySumLock.err) {
|
||||||
weeklySumLock.releaseCallback();
|
// weeklySumLock.releaseCallback();
|
||||||
return { status: -1, resResult: resResult(STATUS.GUILD_WEEKLY_SUM) };
|
// return { status: -1, resResult: resResult(STATUS.GUILD_WEEKLY_SUM) };
|
||||||
}
|
// }
|
||||||
weeklySumLock.releaseCallback();
|
// weeklySumLock.releaseCallback();
|
||||||
|
|
||||||
// 人数锁
|
// 人数锁
|
||||||
let res: any = await lockData(serverId, DATA_NAME.JOIN_GUILD, code);// 加锁
|
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不能变动
|
// 周结算时,1. 不能变动memberCnt 2.玩家activeWeekly不能变动 3.公会activeWeekly不能变动
|
||||||
for (let { code, memberCnt, serverId } of guildList) {
|
for (let { code, memberCnt, serverId } of guildList) {
|
||||||
let res: any = await lockDataNoRetry(serverId, DATA_NAME.WEEKLY_GUILD_SUM, code);//加锁
|
// let res: any = await lockDataNoRetry(serverId, DATA_NAME.WEEKLY_GUILD_SUM, code);//加锁
|
||||||
if (!!res.err) {
|
// if (!!res.err) {
|
||||||
await ErrLogModel.create(`settle guild lock data error: ${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 });
|
const userGuildList = await UserGuildModel.getListByGuild(code, 'roleId auth activeWeekly', { activeWeekly: -1, activeUpdateTime: 1 });
|
||||||
|
|
||||||
let otherMemberCnt = 0; // 除了大将军以外从活跃高到底成员人数,用户计算活跃排名百分比
|
let otherMemberCnt = 0; // 除了大将军以外从活跃高到底成员人数,用户计算活跃排名百分比
|
||||||
@@ -405,7 +405,7 @@ export async function settleGuildWeekly() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
await GuildModel.updateInfo(code, { activeWeekly: 0 }, {});
|
await GuildModel.updateInfo(code, { activeWeekly: 0 }, {});
|
||||||
res.releaseCallback();//解锁
|
// res.releaseCallback();//解锁
|
||||||
}
|
}
|
||||||
await initSingleRank(REDIS_KEY.GUILD_ACTIVE_RANK);
|
await initSingleRank(REDIS_KEY.GUILD_ACTIVE_RANK);
|
||||||
await initSingleRank(REDIS_KEY.GUILD_LV_RANK);
|
await initSingleRank(REDIS_KEY.GUILD_LV_RANK);
|
||||||
|
|||||||
@@ -84,7 +84,7 @@ async function lock(lockKey: string) {
|
|||||||
return new Promise((resolve) => {
|
return new Promise((resolve) => {
|
||||||
_redlockCache.redlock.lock(lockKey, _redlockCache.ttl, function(err, lock) {
|
_redlockCache.redlock.lock(lockKey, _redlockCache.ttl, function(err, lock) {
|
||||||
if(err) {
|
if(err) {
|
||||||
return resolve({ err })
|
return resolve({ err, releaseCallback: releaseCallback.bind(null, lockKey) })
|
||||||
}
|
}
|
||||||
setLock(lockKey, lock);
|
setLock(lockKey, lock);
|
||||||
return resolve({err: null, releaseCallback: releaseCallback.bind(null, lockKey)});
|
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)};
|
return {err: null, releaseCallback: releaseCallback.bind(null, lockKey)};
|
||||||
}).catch(function(err) {
|
}).catch(function(err) {
|
||||||
console.error(err);
|
console.error(err);
|
||||||
return { err };
|
return { err, releaseCallback: releaseCallback.bind(null, lockKey) };
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user