generated from root/miduo_server
合服优化,运行二次合服
parent
af779d5dfd
commit
4e08c1a850
|
@ -1,24 +1,42 @@
|
|||
#!/bin/bash
|
||||
|
||||
# MongoDB的账号、密码、端口等信息
|
||||
MONGO_HOST=$1
|
||||
MONGO_PORT=$2
|
||||
MONGO_USER=$3
|
||||
MONGO_PASSWORD=$4
|
||||
MONGO_AUTH_DB=$5
|
||||
|
||||
mongo_host=$1
|
||||
mongo_port=$2
|
||||
mongo_user=$3
|
||||
mongo_password=$4
|
||||
# 导出数据的数据库和集合
|
||||
DATABASE_NAME=$6
|
||||
COLLECTION_NAME=$7
|
||||
database_name=$5
|
||||
collection_name=$6
|
||||
# 操作
|
||||
controls=$7
|
||||
|
||||
# 导出数据保存的目录
|
||||
EXPORT_DIRECTORY="/data/jieling/hefu"
|
||||
if [ ! -d "$EXPORT_DIRECTORY" ]; then
|
||||
mkdir -p $EXPORT_DIRECTORY
|
||||
echo "已创建目录 $EXPORT_DIRECTORY"
|
||||
fi
|
||||
|
||||
if [ "$controls" = "dump" ]; then
|
||||
# 导出数据
|
||||
mongodump --host "$mongo_host" --port "$mongo_port" --username "$mongo_user" --password "$mongo_password" --authenticationDatabase admin --db "$database_name" --collection "$collection_name" --out $EXPORT_DIRECTORY
|
||||
echo "备份数据库 $database_name $collection_name 完成"
|
||||
elif [ "$controls" = "restore" ]; then
|
||||
# 导入数据的目录
|
||||
IMPORT_DIRECTORY="/data/jieling/hefu/$collection_name"
|
||||
# 导入数据
|
||||
mongorestore --host $mongo_host --port "$mongo_port" --username "$mongo_user" --password "$mongo_password" --authenticationDatabase admin --db "$database_name" "$IMPORT_DIRECTORY"
|
||||
echo "导入数据库 $collection_name 到 $database_name 完成"
|
||||
elif [ "$controls" = "drop" ]; then
|
||||
# 清库命令
|
||||
js_command="db.getSiblingDB('${database_name}').${collection_name}.clear()"
|
||||
#删库
|
||||
mongo --host "$mongo_host" --port "$mongo_port" --username "$mongo_user" --password "$mongo_password" --authenticationDatabase admin --eval "$js_command"
|
||||
echo "清空数据库 $database_name $collection_name 完成"
|
||||
else
|
||||
echo "操作参数错误!!! $controls"
|
||||
fi
|
||||
|
||||
# 导入数据的目录
|
||||
IMPORT_DIRECTORY="/data/jieling/hefu"
|
||||
|
||||
# 导出数据
|
||||
mongodump --host $MONGO_HOST --port $MONGO_PORT --username $MONGO_USER --password $MONGO_PASSWORD --authenticationDatabase $MONGO_AUTH_DB --db $DATABASE_NAME --collection $COLLECTION_NAME --out $EXPORT_DIRECTORY
|
||||
|
||||
# 导入数据
|
||||
mongorestore --host $MONGO_HOST --port $MONGO_PORT --username $MONGO_USER --password $MONGO_PASSWORD --authenticationDatabase $MONGO_AUTH_DB --db $DATABASE_NAME $IMPORT_DIRECTORY
|
|
@ -0,0 +1,52 @@
|
|||
package com.jmfy.controller;
|
||||
|
||||
import com.jmfy.dao.ServerInfoDao;
|
||||
import com.jmfy.model.ServerAreaInfo;
|
||||
import com.jmfy.model.ServerAreaInfoManager;
|
||||
import com.jmfy.model.ServerInfo;
|
||||
import com.jmfy.utils.JsonUtil;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.ui.ModelMap;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMethod;
|
||||
import org.springframework.web.bind.annotation.ResponseBody;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpSession;
|
||||
import java.util.*;
|
||||
|
||||
@Controller
|
||||
public class HeFuNewController {
|
||||
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(HeFuNewController.class);
|
||||
|
||||
@Resource
|
||||
private ServerInfoDao serverInfoDao;
|
||||
|
||||
|
||||
/**
|
||||
* 批量开启白名单
|
||||
* @param request
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
@RequestMapping(value = "/closeServer", method = {RequestMethod.POST, RequestMethod.GET})
|
||||
public @ResponseBody String closeServer(HttpServletRequest request) throws Exception {
|
||||
HashMap<String, String> parameterMap = JsonUtil.getInstence().getParameterMap(request);
|
||||
String[] serverIds = parameterMap.get("serverIds").split("#");
|
||||
List<String> strings = Arrays.asList(serverIds);
|
||||
List<ServerInfo> allServerInfo = serverInfoDao.getAllServerInfo();
|
||||
for (ServerInfo serverInfo : allServerInfo) {
|
||||
if (strings.contains(serverInfo.getServer_id())) {
|
||||
serverInfo.setStatus("1");
|
||||
serverInfo.setIsWhite("1");
|
||||
// serverInfoDao.updateServerInfo(serverInfo.getServer_id(), 1, 1, 0, 0);
|
||||
}
|
||||
}
|
||||
return "服务器:" + parameterMap.get("serverIds").replace("#",",") + " 关服成功";
|
||||
}
|
||||
|
||||
}
|
|
@ -35,7 +35,7 @@ public class CHefuDaoImpl implements CHefuDao {
|
|||
@Override
|
||||
public CHefuInfo findHefuByServerID(int serverId) throws Exception {
|
||||
MongoTemplate mongoTemplate = connect.getMongoTemplete(dbName);
|
||||
Query query = new Query(Criteria.where("serverId").is(serverId));
|
||||
Query query = new Query(Criteria.where("masterServerId").is(serverId));
|
||||
return mongoTemplate.findOne(query, CHefuInfo.class);
|
||||
}
|
||||
|
||||
|
|
|
@ -131,7 +131,7 @@ public class ServerInfoDaoImpl implements ServerInfoDao {
|
|||
if (serverInfo.getSub_channel() != null && !"".equals(serverInfo.getSub_channel())){
|
||||
update.set("sub_channel",serverInfo.getSub_channel());
|
||||
}
|
||||
// update.set("isSlave",serverInfo.getIsSlave());
|
||||
update.set("isSlave",serverInfo.getIsSlave());
|
||||
MongoTemplate mongoTemplate = connect.getMongoTemplete(dbName);
|
||||
Query query = new Query(Criteria.where("server_id").is(serverInfo.getServer_id()));
|
||||
mongoTemplate.updateMulti(query, update, ServerInfo.class);
|
||||
|
|
|
@ -4,7 +4,9 @@ import com.jmfy.dao.CHefuDao;
|
|||
import com.jmfy.dao.ServerInfoDao;
|
||||
import com.jmfy.model.CHefuInfo;
|
||||
import com.jmfy.model.ServerInfo;
|
||||
import com.jmfy.utils.AutoServerManager;
|
||||
import com.jmfy.utils.RedisUtil;
|
||||
import com.jmfy.utils.SeqUtils;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
@ -14,14 +16,11 @@ import org.springframework.stereotype.Component;
|
|||
import javax.annotation.PostConstruct;
|
||||
import java.io.BufferedReader;
|
||||
import java.io.InputStreamReader;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.lang.reflect.Member;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* @Author hj
|
||||
* @Date 2023/5/11 10:28:41
|
||||
* @Description:
|
||||
* @Version 1.0
|
||||
* 合服管理类
|
||||
*/
|
||||
@Component
|
||||
public class HeFuManager {
|
||||
|
@ -29,11 +28,13 @@ public class HeFuManager {
|
|||
|
||||
private static CHefuDao hefuDao;
|
||||
private static ServerInfoDao serverInfoDao;
|
||||
private static SeqUtils seqUtils;
|
||||
|
||||
@Autowired
|
||||
public HeFuManager(CHefuDao hefuDao, ServerInfoDao serverInfoDao) {
|
||||
public HeFuManager(CHefuDao hefuDao, ServerInfoDao serverInfoDao, SeqUtils seqUtils) {
|
||||
HeFuManager.hefuDao = hefuDao;
|
||||
HeFuManager.serverInfoDao = serverInfoDao;
|
||||
HeFuManager.seqUtils = seqUtils;
|
||||
}
|
||||
|
||||
private static final Map<Integer, Integer> hefuMap = new HashMap<>();
|
||||
|
@ -47,8 +48,7 @@ public class HeFuManager {
|
|||
return masterId == serverId;
|
||||
}
|
||||
|
||||
@PostConstruct
|
||||
public void init(){
|
||||
public static void setHefuMap(){
|
||||
try {
|
||||
List<CHefuInfo> hefuList = hefuDao.findHefuList();
|
||||
if (hefuList == null || hefuList.isEmpty()){
|
||||
|
@ -64,128 +64,132 @@ public class HeFuManager {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* mongo数据库信息
|
||||
*/
|
||||
// @Value("${spring.data.gameMongodb.uri}")
|
||||
private static String mongoClient;
|
||||
|
||||
private static String path = "/data/jieling/hefu/";
|
||||
|
||||
/**
|
||||
* mongo 备份
|
||||
*/
|
||||
private static String MONGO_BACKUPS_COMMAND = "mongodump --forceTableScan --host 10.0.0.176 --port 27017 -u rwuser -p Ysj666_777 --authenticationDatabase admin -d ysj_40001 -o ./";
|
||||
/**
|
||||
* mongo 备份
|
||||
*/
|
||||
private static String MONGO_RESTORE_COMMAND = "mongorestore --host 10.0.0.176 --port 27017 -u rwuser -p Ysj666_777 --authenticationDatabase admin -d ysj_40001 ./";
|
||||
|
||||
@PostConstruct
|
||||
public void init(){
|
||||
setHefuMap();
|
||||
}
|
||||
|
||||
// hefu|10001|10002#10003#10004
|
||||
public static void hefu(String cmd) {
|
||||
try {
|
||||
String[] split = cmd.split("\\|");
|
||||
int masterId = Integer.parseInt(split[1]);
|
||||
String slave = split[2];
|
||||
String[] strings = slave.split("#");
|
||||
LOGGER.info("合服信息:{}",cmd);
|
||||
|
||||
// mongo连接信息
|
||||
// String[] data = mongoData();
|
||||
// String nowTime = getNowTime();
|
||||
// LOGGER.info("mongo信息:{},date:{}",data.toString(),nowTime);
|
||||
//
|
||||
// // 主服
|
||||
// boolean script = merageScript(MONGO_BACKUPS_COMMAND, String.valueOf(masterId), data[0], data[1], data[2], data[3], path, nowTime);
|
||||
// if (!script){
|
||||
// LOGGER.error("备份主服中断:{}",masterId);
|
||||
// throw new Exception("备份主服中断");
|
||||
// }
|
||||
// // 合服
|
||||
// for (String s : strings) {
|
||||
// boolean back = merageScript(MONGO_BACKUPS_COMMAND, s, data[0], data[1], data[2], data[3], path, nowTime);
|
||||
// if (!back){
|
||||
// LOGGER.error("备份从服中断:{}",s);
|
||||
// throw new Exception("备份从服中断");
|
||||
// }
|
||||
// }
|
||||
// for (String s : strings) {
|
||||
// boolean restore = merageScript(MONGO_RESTORE_COMMAND, s, data[0], data[1], data[2], data[3], path, nowTime);
|
||||
// if (!restore){
|
||||
// LOGGER.error("导入中断:{}",s);
|
||||
// throw new Exception("导入中断");
|
||||
// }
|
||||
// }
|
||||
|
||||
// 处理从服redis
|
||||
for (String s : strings) {
|
||||
int slaveId = Integer.parseInt(s);
|
||||
dealRedis(masterId,slaveId);
|
||||
}
|
||||
|
||||
// 处理从服的gm服务器信息
|
||||
ArrayList<Integer> list = new ArrayList<>();
|
||||
for (String s : strings) {
|
||||
int slaveId = Integer.parseInt(s);
|
||||
list.add(slaveId);
|
||||
upsertServerIpAndPort(masterId,slaveId);
|
||||
}
|
||||
|
||||
// 合服信息入库
|
||||
CHefuInfo hefuInfo = new CHefuInfo();
|
||||
hefuInfo.setMasterServerId(masterId);
|
||||
hefuInfo.setSlaveServerIds(list);
|
||||
hefuDao.upsertHefuInfo(hefuInfo);
|
||||
LOGGER.info("合服完成");
|
||||
LOGGER.info("合服菜单======================:{}",cmd);
|
||||
// 主服id
|
||||
int masterId = Integer.parseInt(split[1]);
|
||||
// 从服列表
|
||||
Set<Integer> salveList = new HashSet<>();
|
||||
Arrays.stream(strings).forEach(v->salveList.add(Integer.parseInt(v)));
|
||||
// 处理数据库
|
||||
dealMongo(masterId, salveList);
|
||||
// 处理redis
|
||||
dealRedis(masterId, salveList);
|
||||
// 处理gm数据库信息
|
||||
dealIpPort(masterId, salveList);
|
||||
// 合服记录入库
|
||||
addHeFuInfo(masterId, salveList);
|
||||
// 重启服务器
|
||||
AutoServerManager.rebootServer(String.valueOf(masterId));
|
||||
// 更新合服缓存
|
||||
setHefuMap();
|
||||
}catch (Exception e){
|
||||
e.printStackTrace();
|
||||
}
|
||||
LOGGER.info("合服完成==============================/n");
|
||||
}
|
||||
|
||||
private static void addHeFuInfo(int masterId, Set<Integer> salveList) throws Exception {
|
||||
|
||||
// 预防二次合服,删除之前得合服记录
|
||||
CHefuInfo hefu = hefuDao.findHefuByServerID(masterId);
|
||||
if (hefu != null){
|
||||
hefuDao.removeHefuInfo(hefu);
|
||||
}
|
||||
for (Integer id : salveList) {
|
||||
CHefuInfo hefu2 = hefuDao.findHefuByServerID(id);
|
||||
if (hefu2 != null){
|
||||
salveList.addAll(hefu2.getSlaveServerIds());
|
||||
hefuDao.removeHefuInfo(hefu2);
|
||||
}
|
||||
}
|
||||
|
||||
// 创建新得合服记录
|
||||
CHefuInfo hefuInfo = new CHefuInfo();
|
||||
// 因为库里有自定义得数据,所以从10开始计算
|
||||
int hefuId = seqUtils.getSequence("hefu_id") + 10;
|
||||
hefuInfo.setId(hefuId);
|
||||
hefuInfo.setMasterServerId(masterId);
|
||||
hefuInfo.setSlaveServerIds(salveList);
|
||||
hefuDao.upsertHefuInfo(hefuInfo);
|
||||
}
|
||||
|
||||
private static void dealMongo(int masterId, Set<Integer> salveList) {
|
||||
String userdb = "user", guildb = "guildInfo", maildb = "mailingSystem";
|
||||
String dump = "dump", restore = "restore", drop = "drop";
|
||||
String[] dbValue = getMongoDbValue();
|
||||
LOGGER.info("开始处理合服mongo数据库=================:{}",Arrays.toString(dbValue));
|
||||
|
||||
String masterServer = "jieling_"+masterId;
|
||||
// 备份主服得用户表和工会表
|
||||
mergeScript(dbValue[0],dbValue[1],dbValue[2],dbValue[3],masterServer,userdb,dump);
|
||||
mergeScript(dbValue[0],dbValue[1],dbValue[2],dbValue[3],masterServer,guildb,dump);
|
||||
LOGGER.info("备份主服mongo数据库完成=================:{}",masterServer);
|
||||
|
||||
// 备份从服得用户表和工会表
|
||||
for (Integer id : salveList) {
|
||||
String slaveServer = "jieling_"+id;
|
||||
mergeScript(dbValue[0],dbValue[1],dbValue[2],dbValue[3],slaveServer,userdb,dump);
|
||||
mergeScript(dbValue[0],dbValue[1],dbValue[2],dbValue[3],slaveServer,guildb,dump);
|
||||
LOGGER.info("备份从服mongo数据库完成=================:{}",slaveServer);
|
||||
}
|
||||
|
||||
// 导入从服得用户表和工会表
|
||||
for (Integer id : salveList) {
|
||||
String slaveServer = "jieling_"+id;
|
||||
mergeScript(dbValue[0],dbValue[1],dbValue[2],dbValue[3],masterServer,slaveServer,restore);
|
||||
LOGGER.info("导入从服mongo数据库完成=================:{}==>{}",slaveServer,masterServer);
|
||||
}
|
||||
|
||||
// 清理主服得全服邮件
|
||||
mergeScript(dbValue[0],dbValue[1],dbValue[2],dbValue[3],masterServer,maildb,drop);
|
||||
LOGGER.info("清理主服全服邮件,合服mongo完成=================:{}",masterServer);
|
||||
}
|
||||
|
||||
public static String[] getMongoDbValue(){
|
||||
String[] result = new String[4];
|
||||
String mongodb = AutoServerManager.getGameMongodb();
|
||||
String[] split = mongodb.split("@");
|
||||
String[] split2 = split[0].split(":");
|
||||
String[] split3 = split[1].split(":");
|
||||
result[0] = split2[0];// ip
|
||||
result[1] = split2[1];// port
|
||||
result[2] = split3[0];// account
|
||||
result[3] = split3[1];// pwd
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取当前时间
|
||||
*
|
||||
* @return
|
||||
* 合并命令
|
||||
*/
|
||||
private static String getNowTime() {
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHH");
|
||||
return sdf.format(new Date(System.currentTimeMillis()));
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param serverId
|
||||
* @param mongodbHost
|
||||
* @param mongoProt
|
||||
* @param mongoUser
|
||||
* @param mongoPaw
|
||||
* @param mongoPath
|
||||
* @param date
|
||||
*/
|
||||
public boolean merageScript(String script, String serverId, String mongodbHost, String mongoProt, String mongoUser, String mongoPaw, String mongoPath, String date){
|
||||
String command = script.replace("10.0.0.176", mongodbHost)
|
||||
.replace("27017", mongoProt)
|
||||
.replace("rwuser", mongoUser)
|
||||
.replace("Ysj666_777", mongoPaw)
|
||||
.replace("ysj_40001", "jieling_" + serverId)
|
||||
.replace("./", mongoPath + date + "/");
|
||||
public static void mergeScript(String ip, String port, String user, String pwd, String db1, String coll, String con){
|
||||
String script = "config/script/hefu_mongo.sh";
|
||||
String space = " ";
|
||||
String command = "bash" + space + script + space + ip + space + port + space + user + space + pwd +
|
||||
space + db1 + space + coll + space + con;
|
||||
boolean isSuccess = exeShell(command);
|
||||
if (isSuccess) {
|
||||
LOGGER.info("mongoBackups==>exeShell:{}", command);
|
||||
} else {
|
||||
LOGGER.error("mongoBackups==>exeShell:{}", command);
|
||||
}
|
||||
return isSuccess;
|
||||
}
|
||||
|
||||
/**
|
||||
* 执行shell命令
|
||||
*
|
||||
* @param command
|
||||
*/
|
||||
public static boolean exeShell(String command) {
|
||||
Process process = null;
|
||||
Process process;
|
||||
try {
|
||||
process = Runtime.getRuntime().exec(command);
|
||||
BufferedReader reader = new BufferedReader(
|
||||
|
@ -205,26 +209,28 @@ public class HeFuManager {
|
|||
return true;
|
||||
}
|
||||
|
||||
public static String[] mongoData() {
|
||||
//"mongodb://zhj:zhj666@60.1.1.22:27017/?authSource\u003dadmin"
|
||||
String[] mongdData = mongoClient.split(":");
|
||||
String user = mongdData[1].substring(2);
|
||||
String[] hosts = mongdData[2].split("@");
|
||||
String password = hosts[0];
|
||||
String host = hosts[1];
|
||||
String port = mongdData[3].split("/")[0];
|
||||
String[] datas = new String[4];
|
||||
datas[0] = host;
|
||||
datas[1] = port;
|
||||
datas[2] = user;
|
||||
datas[3] = password;
|
||||
return datas;
|
||||
/**
|
||||
* 处理ip和端口
|
||||
* @param masterSID 主服id
|
||||
* @param slaveId 从服id列表
|
||||
* @throws Exception 异常
|
||||
*/
|
||||
private static void dealIpPort(int masterSID, Set<Integer> slaveId) throws Exception {
|
||||
for (Integer slave : slaveId) {
|
||||
CHefuInfo hefuInfo = hefuDao.findHefuByServerID(slave);
|
||||
if (hefuInfo != null){
|
||||
for (Integer serverId : hefuInfo.getSlaveServerIds()) {
|
||||
upsertServerIpAndPort(masterSID, serverId);
|
||||
}
|
||||
}else {
|
||||
upsertServerIpAndPort(masterSID, slave);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void upsertServerIpAndPort(int masterSID, int slowSID) throws Exception {
|
||||
LOGGER.info("开始处理IP和端口===========,a:{},b:{}",masterSID,slowSID);
|
||||
public static void upsertServerIpAndPort(int masterSID, int slaveSID) throws Exception {
|
||||
ServerInfo masterServer = serverInfoDao.getServerInfo(String.valueOf(masterSID));
|
||||
ServerInfo slaveServer = serverInfoDao.getServerInfo(String.valueOf(slowSID));
|
||||
ServerInfo slaveServer = serverInfoDao.getServerInfo(String.valueOf(slaveSID));
|
||||
slaveServer.setIp(masterServer.getIp());
|
||||
slaveServer.setPort(masterServer.getPort());
|
||||
slaveServer.setCoreName(masterServer.getCoreName());
|
||||
|
@ -244,27 +250,29 @@ public class HeFuManager {
|
|||
public static final String GUILD_CHALLENGE_RANK = "GUILD_CHALLENGE_RANK";//公会副本排行榜
|
||||
public static final String ARENA_RANK = "ARENA_RANK";//竞技场排行榜
|
||||
|
||||
public static void dealRedis(int masterSID, int slowSID){
|
||||
LOGGER.info("开始处理redis排行榜===========,a:{},b:{}",masterSID,slowSID);
|
||||
// 战力排行榜处理
|
||||
defaultRankOfRedis(FORCE_CURR_RANK,masterSID,slowSID);
|
||||
// 心魔试炼排行榜处理
|
||||
defaultRankOfRedis(MONSTER_ATTACK_RANK,masterSID,slowSID);
|
||||
// 公会战力排行榜处理
|
||||
defaultRankOfRedis(GUILD_FORCE_RANK,masterSID,slowSID);
|
||||
// 山河社稷图星级排行榜处理
|
||||
defaultRankOfRedis(SHAN_HE_SHE_JI_STAR_RANK,masterSID,slowSID);
|
||||
// 山河社稷图关卡等级排行榜处理
|
||||
defaultRankOfRedis(SHAN_HE_SHE_JI_CHAPTER_RANK,masterSID,slowSID);
|
||||
// 竞技场防御编队处理
|
||||
defaultRankOfRedis(AREDEF_TEAM_FORCE_RANK,masterSID,slowSID);
|
||||
// 四灵试炼排行榜处理
|
||||
fourRankOfRedis(FOUR_CHALLENGE_TIER_RANK,masterSID,slowSID);
|
||||
// 公会副本排行榜处理
|
||||
deleteRankOfRedis(GUILD_CHALLENGE_RANK,masterSID);
|
||||
// 竞技场排行榜处理
|
||||
deleteRankOfRedis(ARENA_RANK,masterSID);
|
||||
LOGGER.info("处理redis排行榜完成");
|
||||
public static void dealRedis(int masterSID, Set<Integer> slaveId){
|
||||
for (Integer slowSID : slaveId) {
|
||||
LOGGER.info("开始处理redis排行榜===========,master:{},slave:{}",masterSID,slowSID);
|
||||
// 战力排行榜处理
|
||||
defaultRankOfRedis(FORCE_CURR_RANK,masterSID,slowSID);
|
||||
// 心魔试炼排行榜处理
|
||||
defaultRankOfRedis(MONSTER_ATTACK_RANK,masterSID,slowSID);
|
||||
// 公会战力排行榜处理
|
||||
defaultRankOfRedis(GUILD_FORCE_RANK,masterSID,slowSID);
|
||||
// 山河社稷图星级排行榜处理
|
||||
defaultRankOfRedis(SHAN_HE_SHE_JI_STAR_RANK,masterSID,slowSID);
|
||||
// 山河社稷图关卡等级排行榜处理
|
||||
defaultRankOfRedis(SHAN_HE_SHE_JI_CHAPTER_RANK,masterSID,slowSID);
|
||||
// 竞技场防御编队处理
|
||||
defaultRankOfRedis(AREDEF_TEAM_FORCE_RANK,masterSID,slowSID);
|
||||
// 四灵试炼排行榜处理
|
||||
fourRankOfRedis(FOUR_CHALLENGE_TIER_RANK,masterSID,slowSID);
|
||||
// 公会副本排行榜处理
|
||||
deleteRankOfRedis(GUILD_CHALLENGE_RANK,masterSID);
|
||||
// 竞技场排行榜处理
|
||||
deleteRankOfRedis(ARENA_RANK,masterSID);
|
||||
LOGGER.info("{} 处理redis排行榜完成======================", slowSID);
|
||||
}
|
||||
}
|
||||
|
||||
public static void defaultRankOfRedis(String key, int masterSID, int slowSID){
|
||||
|
|
|
@ -1,18 +1,20 @@
|
|||
package com.jmfy.model;
|
||||
|
||||
import org.springframework.data.annotation.Id;
|
||||
import org.springframework.data.mongodb.core.index.CompoundIndex;
|
||||
import org.springframework.data.mongodb.core.index.CompoundIndexes;
|
||||
import org.springframework.data.mongodb.core.mapping.Document;
|
||||
import org.springframework.data.mongodb.core.mapping.Field;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
* @Author hj
|
||||
* @Date 2023/5/17 17:22:10
|
||||
* @Description:
|
||||
* @Version 1.0
|
||||
* 合服基础类
|
||||
*/
|
||||
@Document(collection = "c_hefu_info")
|
||||
@CompoundIndexes({@CompoundIndex(name = "masterIndex", def = "{'masterServerId': 1}")})
|
||||
public class CHefuInfo {
|
||||
|
||||
@Id
|
||||
|
@ -47,4 +49,8 @@ public class CHefuInfo {
|
|||
public void setSlaveServerIds(List<Integer> slaveServerIds) {
|
||||
this.slaveServerIds = slaveServerIds;
|
||||
}
|
||||
|
||||
public void setSlaveServerIds(Set<Integer> slaveServerIds) {
|
||||
this.slaveServerIds = new ArrayList<>(slaveServerIds);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue