修改redis锁
parent
d07a2260a7
commit
e5753431c4
|
@ -36,13 +36,13 @@ public class SevenWorldFunction implements FunctionManager {
|
|||
public void closeAction(){
|
||||
int crossGroup = GlobleSystemLogic.crossGroup;
|
||||
String lockKey = "SEVEN_WORLD_RESET_LOCK" + RedisKey.Delimiter_colon + crossGroup;
|
||||
boolean lock = RedisUtil.getInstence().lock(lockKey, TimeUtils.ONE_SECOND * 60);
|
||||
boolean lock = RedisUtil.getInstence().lock(lockKey, TimeUtils.ONE_MINUTE*5);
|
||||
if (!lock) {
|
||||
//没有拿到锁直接返回
|
||||
LOGGER.error("七界试炼,重置排行榜退出, key:{} 跨服分组 ={},锁状态:{},未获取到锁",lockKey, crossGroup, lock);
|
||||
return;
|
||||
}
|
||||
|
||||
RedisUtil.getInstence().expire2(lockKey,TimeUtils.ONE_MINUTE*5);
|
||||
LOGGER.info("七界试炼活动结束,开始发奖...");
|
||||
// 排行榜
|
||||
String crossRedisKey = RankContext.getRankEnum(RankEnum.CROSS_SEVEN_WORLD_RANK.getType()).getCrossRedisKey();
|
||||
|
|
|
@ -119,6 +119,27 @@ public class RedisUtil {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 指定缓存失效时间
|
||||
*
|
||||
* @param key
|
||||
* 键
|
||||
* @param time
|
||||
* 时间(毫秒)
|
||||
* @return
|
||||
*/
|
||||
public boolean expire2(String key, long time) {
|
||||
try {
|
||||
if (time > 0) {
|
||||
redisTemplate.expire(key, time, TimeUnit.MILLISECONDS);
|
||||
}
|
||||
return true;
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 根据key 获取过期时间
|
||||
|
@ -187,7 +208,7 @@ public class RedisUtil {
|
|||
// 重命名
|
||||
redisTemplate.rename(oldName,newName);
|
||||
// 设置过期时间
|
||||
expire(newName,time);
|
||||
expire2(newName,time);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -212,7 +233,7 @@ public class RedisUtil {
|
|||
// 重命名
|
||||
redisTemplate.rename(oldName,newName);
|
||||
// 设置过期时间
|
||||
expire(newName,time);
|
||||
expire2(newName,time);
|
||||
}
|
||||
}
|
||||
return;
|
||||
|
|
|
@ -75,7 +75,7 @@ public class RidingSwardActivity extends AbstractActivity{
|
|||
MailLogic.getInstance().sendMail(user.getId(),title,content,reward,TimeUtils.nowInt(),Global.MAIL_EFFECTIVE_TIME);
|
||||
}
|
||||
// 删除key
|
||||
RedisUtil.getInstence().rename(TimeUtils.ONE_DAY*3/1000,RedisUtil.getInstence().getKey(RedisKey.RIDING_SWARD_RECORD, String.valueOf(user.getId())));
|
||||
RedisUtil.getInstence().rename(TimeUtils.ONE_DAY*3,RedisUtil.getInstence().getKey(RedisKey.RIDING_SWARD_RECORD, String.valueOf(user.getId())));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -765,7 +765,7 @@ public class ArenaLogic {
|
|||
}
|
||||
|
||||
public void LuoFuSendReward() {
|
||||
LOGGER.info("罗浮争霸,开始发奖");
|
||||
LOGGER.info("罗浮争霸,开始发奖。。。");
|
||||
Map<Integer, ISession> sessionMap = OnlineUserManager.sessionMap;
|
||||
for (Map.Entry<Integer, ISession> entry : sessionMap.entrySet()) {
|
||||
MessageUtil.sendIndicationMessage(entry.getValue(), 1, MessageTypeProto.MessageType.GetWorldArenaInfoIndication_VALUE, null, true);
|
||||
|
@ -774,10 +774,14 @@ public class ArenaLogic {
|
|||
if (crossGroup == -1) {
|
||||
return;
|
||||
}
|
||||
boolean lock = RedisUtil.getInstence().lock("WORLD_ARENA_SEND_REWARD_RANK:" + crossGroup, TimeUtils.ONE_MINUTE * 5);
|
||||
String lockKey = "WORLD_ARENA_SEND_REWARD_RANK:" + crossGroup;
|
||||
boolean lock = RedisUtil.getInstence().lock(lockKey, TimeUtils.ONE_MINUTE * 5);
|
||||
if (!lock) {
|
||||
LOGGER.error("罗浮争锋,发奖退出,未获取到锁:{}",lockKey);
|
||||
return;
|
||||
}
|
||||
RedisUtil.getInstence().expire2(lockKey,TimeUtils.ONE_MINUTE * 5);
|
||||
|
||||
AbstractRank rank = RankContext.getRankEnum(RankEnum.CROSS_SERVICE_ARENA.getType());
|
||||
String title = SErrorCodeEerverConfig.getI18NMessage("mserverarena_reward_title");
|
||||
TreeMap<Integer, SMServerArenaReward> rewardMapByRank = SMServerArenaReward.rewardMapByRank;
|
||||
|
@ -811,7 +815,7 @@ public class ArenaLogic {
|
|||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
LOGGER.info("罗浮争霸:转到休息状态,nowstate:{} to RELAX_STATE", getState());
|
||||
LOGGER.info("罗浮争霸:发奖结束,转到休息状态,nowstate:{} to RELAX_STATE", getState());
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -826,7 +830,7 @@ public class ArenaLogic {
|
|||
long time = TimeUtils.getBeginOfDay(TimeUtils.now() + reward[1] * 1000L) + TimeUtils.DAY;
|
||||
redisUtil.putMapEntry2(key,String.valueOf(reward[0]),time);
|
||||
}
|
||||
redisUtil.expire(key,TimeUtils.WEEK/1000);
|
||||
redisUtil.expire2(key,TimeUtils.WEEK);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -900,10 +904,11 @@ public class ArenaLogic {
|
|||
//分布式锁,保证一个组只有一个服进行初始化
|
||||
boolean lock = RedisUtil.getInstence().lock("WORLD_ARENA_INIT_RANK:" + crossGroup, TimeUtils.ONE_MINUTE * 5);
|
||||
if (!lock) {
|
||||
LOGGER.error("罗浮争锋,初始化排行榜退出,未获取到锁");
|
||||
return;
|
||||
}
|
||||
LOGGER.info("跨服信息初始化...");
|
||||
RedisUtil.getInstence().expire("WORLD_ARENA_INIT_RANK:" + crossGroup, TimeUtils.ONE_MINUTE * 5);
|
||||
LOGGER.info("罗浮争锋,初始化排行榜开始...");
|
||||
RedisUtil.getInstence().expire2("WORLD_ARENA_INIT_RANK:" + crossGroup, TimeUtils.ONE_MINUTE * 5);
|
||||
|
||||
String key1 = RedisUtil.getInstence().getKey(RedisKey.CROSS_ARENA_ROBOT_INFO, String.valueOf(crossGroup));
|
||||
String key2 = RedisUtil.getInstence().getKey(RedisKey.CROSS_SERVICE_ARENA, String.valueOf(crossGroup));
|
||||
|
@ -934,7 +939,7 @@ public class ArenaLogic {
|
|||
robotInfo.put(String.valueOf(robotIndex), new CrossArenaEnemy(robotIds.get(robotIndex), robotIndex, groupList.get(server), 0, 0, random.nextBoolean(), PlayerLogic.getInstance().getRandomName2WithOutVerify(), config.getTotalForce(), config.getRobotLevel()));
|
||||
|
||||
}
|
||||
LOGGER.info("跨服信息初始化结束");
|
||||
LOGGER.info("罗浮争锋,初始化排行榜结束");
|
||||
RedisUtil.getInstence().putMapEntrys(RedisKey.CROSS_ARENA_ROBOT_INFO, String.valueOf(crossGroup), robotInfo);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue