From bf1194f37e8e840d4cea4db5b4374841535fdb81 Mon Sep 17 00:00:00 2001 From: duhui Date: Mon, 27 Feb 2023 16:03:38 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BD=A6=E8=BF=9F=E6=96=97=E6=B3=95=EF=BC=8C?= =?UTF-8?q?=E8=B7=A8=E6=9C=8D=E5=8F=91=E5=A5=96=E5=8A=A0=E9=94=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ljsd/jieling/core/function/CarDelayFunction.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/core/function/CarDelayFunction.java b/serverlogic/src/main/java/com/ljsd/jieling/core/function/CarDelayFunction.java index 0f937f6d7..3cbfd2d90 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/core/function/CarDelayFunction.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/core/function/CarDelayFunction.java @@ -66,10 +66,18 @@ public class CarDelayFunction implements FunctionManager { AbstractRank personRank = RankContext.getRankEnum(RankEnum.CAR_DEALY_RANK.getType()); AbstractRank guildRank = RankContext.getRankEnum(RankEnum.CAR_DEALY_GUILD_RANK.getType()); int crossGroup = GlobleSystemLogic.getInstence().getCrossGroup(); + // 跨服加锁 + String lockKey = "SERVER_CAR_DELAY_REWARD_LOCK" + RedisKey.Delimiter_colon + crossGroup; Set> personRangeWithScores; Set> guildRangeWithScores; if (crossGroup > 0){ + boolean lock = RedisUtil.getInstence().lock(lockKey, TimeUtils.ONE_SECOND * 60); + if (!lock) { + //没有拿到锁直接返回 + LOGGER.error("跨服车迟斗法,发奖, key:{} 跨服分组 ={},未获取到锁",lockKey, crossGroup); + return; + } personRangeWithScores = RedisUtil.getInstence().getZsetreverseRangeWithScores(personRank.getCrossRedisKey(), "", 0, -1, false); guildRangeWithScores = RedisUtil.getInstence().getZsetreverseRangeWithScores(guildRank.getCrossRedisKey(), "", 0, -1, false); }else { @@ -109,5 +117,6 @@ public class CarDelayFunction implements FunctionManager { } } MongoUtil.getLjsdMongoTemplate().lastUpdate(); + RedisUtil.getInstence().del(lockKey); } }