容错计算
parent
c414784114
commit
8a7eb09fe7
|
@ -145,7 +145,6 @@ public class GlobleSystemLogic implements IEventHandler {
|
||||||
|
|
||||||
SMServerArenaSetting setting = STableManager.getConfig(SMServerArenaSetting.class).get(1);
|
SMServerArenaSetting setting = STableManager.getConfig(SMServerArenaSetting.class).get(1);
|
||||||
int rankEndLine = setting.getWorldLevLimit();
|
int rankEndLine = setting.getWorldLevLimit();
|
||||||
RedisUtil.getInstence().del(GameApplication.serverId+":"+RedisKey.WORLD_CALCUL_LEVE_RAND+":");
|
|
||||||
double sum=0;
|
double sum=0;
|
||||||
int level = 1;
|
int level = 1;
|
||||||
//直接从库里查
|
//直接从库里查
|
||||||
|
@ -162,19 +161,10 @@ public class GlobleSystemLogic implements IEventHandler {
|
||||||
//如果达不到这些人,世界等级就为1
|
//如果达不到这些人,世界等级就为1
|
||||||
if(users.size()>=rankEndLine) {
|
if(users.size()>=rankEndLine) {
|
||||||
for (int j = 0; j <users.size() ; j++) {
|
for (int j = 0; j <users.size() ; j++) {
|
||||||
String rankKey = RedisKey.getKey(RedisKey.WORLD_CALCUL_LEVE_RAND,"", false);
|
sum+=users.get(j).getPlayerInfoManager().getLevel();
|
||||||
RedisUtil.getInstence().zsetAddOne(rankKey, String.valueOf(users.get(j).getId()), users.get(j).getPlayerInfoManager().getLevel());
|
|
||||||
}
|
|
||||||
Set<ZSetOperations.TypedTuple<String>> rankInfo = RedisUtil.getInstence().getZsetreverseRangeWithScores(RedisKey.WORLD_CALCUL_LEVE_RAND, "", 0, rankEndLine - 1);
|
|
||||||
|
|
||||||
|
|
||||||
for (ZSetOperations.TypedTuple<String> item : rankInfo) {
|
|
||||||
double score = item.getScore();
|
|
||||||
sum+=score;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
level = (int) Math.ceil(sum / (double) Math.min(rankInfo.size(), rankEndLine));
|
level = (int) Math.ceil(sum / (double) Math.min(users.size(), rankEndLine==0?99999999:rankEndLine));
|
||||||
}
|
}
|
||||||
|
|
||||||
setGlobalWorldLevelCache(level);
|
setGlobalWorldLevelCache(level);
|
||||||
|
|
Loading…
Reference in New Issue