车迟斗法改为跨服玩法,优化

back_recharge
duhui 2022-03-03 18:27:22 +08:00
parent 0d50b13db8
commit f42013ba08
2 changed files with 34 additions and 14 deletions

View File

@ -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));

View File

@ -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=============================
/**
*