车迟斗法改为跨服玩法,优化
parent
0d50b13db8
commit
f42013ba08
|
|
@ -27,27 +27,22 @@ import java.util.*;
|
|||
public class CarDelayFunction implements FunctionManager {
|
||||
@Override
|
||||
public void startAction(TimeControllerOfFunction timeControllerOfFunction) throws Exception {
|
||||
List<String> delKeys = new ArrayList<>();
|
||||
|
||||
String backName = "backup";
|
||||
|
||||
AbstractRank personRank = RankContext.getRankEnum(RankEnum.CAR_DEALY_RANK.getType());
|
||||
AbstractRank guildRank = RankContext.getRankEnum(RankEnum.CAR_DEALY_GUILD_RANK.getType());
|
||||
delKeys.add(RedisUtil.getInstence().getKey(personRank.getRedisKey(), ""));
|
||||
|
||||
String key = RedisUtil.getInstence().getKey(personRank.getRedisKey(), "");
|
||||
String guildKey = RedisUtil.getInstence().getKey(guildRank.getRedisKey(), "");
|
||||
delKeys.add(guildKey);
|
||||
delKeys.add(RedisUtil.getInstence().getKey(personRank.getCrossRedisKey(), ""));
|
||||
delKeys.add(RedisUtil.getInstence().getKey(guildRank.getCrossRedisKey(), ""));
|
||||
String crossKey = RedisUtil.getInstence().getKey(personRank.getCrossRedisKey(), "");
|
||||
String crossGuildKey = RedisUtil.getInstence().getKey(guildRank.getRedisKey(), "");
|
||||
|
||||
String[] delKeys = {key,guildKey,crossKey,crossGuildKey};
|
||||
RedisUtil.getInstence().rename(60*60*16, backName, delKeys);
|
||||
// String userLevelGuild = RedisUtil.getInstence().getKey(RedisKey.USER_LEVEL_GUILD_INFO, "");
|
||||
// delKeys.add(userLevelGuild);
|
||||
Set<String> guildSet = RedisUtil.getInstence().getZset(guildKey, 0, -1);
|
||||
guildSet.forEach(guildId->{
|
||||
GuildInfo guildInfo = GuilidManager.guildInfoMap.get(Integer.parseInt(guildId));
|
||||
if(guildInfo != null){
|
||||
guildInfo.clearCarFightSb();
|
||||
}
|
||||
});
|
||||
MongoUtil.getLjsdMongoTemplate().lastUpdate();
|
||||
RedisUtil.getInstence().rename(60*60*24-60,delKeys.toArray(new String[0]));
|
||||
// RedisUtil.getInstence().del(delKeys.toArray(new String[0]));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -111,6 +106,7 @@ public class CarDelayFunction implements FunctionManager {
|
|||
if(guildInfo==null){
|
||||
continue;
|
||||
}
|
||||
guildInfo.clearCarFightSb();
|
||||
Collection<Set<Integer>> values = guildInfo.getMembers().values();
|
||||
// if(userLevelGuildMap.containsKey(guildId)){
|
||||
// values.add(usersByGuildId.get(guildId));
|
||||
|
|
|
|||
|
|
@ -189,6 +189,30 @@ public class RedisUtil {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* redis重命名
|
||||
* @param time 过期时间
|
||||
* @param key,数组
|
||||
*/
|
||||
public void rename(long time,String postfix,String[] key) {
|
||||
if (key != null && key.length > 0) {
|
||||
for (int i = 0; i < key.length; i++) {
|
||||
// 旧名字
|
||||
String oldName = key[i];
|
||||
// 新名字
|
||||
String newName = getKey(oldName,postfix,false);
|
||||
// key是否存在
|
||||
boolean aBoolean = hasKey(oldName);
|
||||
if (aBoolean){
|
||||
// 重命名
|
||||
redisTemplate.rename(oldName,newName);
|
||||
// 设置过期时间
|
||||
expire(newName,time);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ============================String=============================
|
||||
/**
|
||||
* 普通缓存获取
|
||||
|
|
|
|||
Loading…
Reference in New Issue