generated from root/miduo_server
合服修改
parent
7386e1e671
commit
33759072fa
|
|
@ -7,6 +7,7 @@ proccessname=$3 # 进程名称
|
|||
mongourl=$4 # MongoDB地址
|
||||
redisIp=$5 # Redis IP
|
||||
redisPwd=$6 # Redis 密码
|
||||
mongoadmin=%7 # mongo后缀
|
||||
|
||||
# 停止游戏进程
|
||||
ansible "$gameip" -m shell -a "supervisorctl stop $proccessname"
|
||||
|
|
@ -18,7 +19,7 @@ fi
|
|||
# 清除MongoDB数据
|
||||
tempFile="/data/jieling/gm/config/script/clearMongo.js"
|
||||
|
||||
mongo "mongodb://${mongourl}/jieling_${serverid}?authSource=admin" "$tempFile"
|
||||
mongo "mongodb://${mongourl}/jieling_${serverid}?${mongoadmin}" "$tempFile"
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "清除MongoDB数据失败,退出脚本。"
|
||||
exit 1
|
||||
|
|
|
|||
|
|
@ -101,8 +101,8 @@ public class HeFuManager {
|
|||
dealIpPort(masterId, salveList);
|
||||
// 合服记录入库
|
||||
addHeFuInfo(masterId, salveList);
|
||||
// 重启服务器
|
||||
AutoServerManager.rebootServer(String.valueOf(masterId));
|
||||
// 不用重启服务器
|
||||
// AutoServerManager.rebootServer(String.valueOf(masterId));
|
||||
// 更新合服缓存
|
||||
setHefuMap();
|
||||
}catch (Exception e){
|
||||
|
|
@ -131,6 +131,7 @@ public class HeFuManager {
|
|||
// 预防二次合服,删除之前得合服记录
|
||||
CHefuInfo hefu = hefuDao.findHefuByServerID(masterId);
|
||||
if (hefu != null){
|
||||
cloneSet.addAll(hefu.getSlaveServerIds());
|
||||
hefuDao.removeHefuInfo(hefu);
|
||||
}
|
||||
for (Integer id : salveList) {
|
||||
|
|
@ -243,20 +244,22 @@ public class HeFuManager {
|
|||
* @throws Exception 异常
|
||||
*/
|
||||
private static void dealIpPort(int masterSID, Set<Integer> slaveId) throws Exception {
|
||||
ServerInfo masterServer = serverInfoDao.getServerInfo(String.valueOf(masterSID));
|
||||
for (Integer slave : slaveId) {
|
||||
CHefuInfo hefuInfo = hefuDao.findHefuByServerID(slave);
|
||||
if (hefuInfo != null){
|
||||
// 旧主服也需要改ip端口
|
||||
upsertServerIpAndPort(masterServer, hefuInfo.getMasterServerId());
|
||||
for (Integer serverId : hefuInfo.getSlaveServerIds()) {
|
||||
upsertServerIpAndPort(masterSID, serverId);
|
||||
upsertServerIpAndPort(masterServer, serverId);
|
||||
}
|
||||
}else {
|
||||
upsertServerIpAndPort(masterSID, slave);
|
||||
upsertServerIpAndPort(masterServer, slave);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void upsertServerIpAndPort(int masterSID, int slaveSID) throws Exception {
|
||||
ServerInfo masterServer = serverInfoDao.getServerInfo(String.valueOf(masterSID));
|
||||
public static void upsertServerIpAndPort(ServerInfo masterServer, int slaveSID) throws Exception {
|
||||
ServerInfo slaveServer = serverInfoDao.getServerInfo(String.valueOf(slaveSID));
|
||||
slaveServer.setIp(masterServer.getIp());
|
||||
slaveServer.setPort(masterServer.getPort());
|
||||
|
|
|
|||
|
|
@ -40,6 +40,10 @@ public class AutoServerManager {
|
|||
String[] split = gameMongodb.split("/");
|
||||
return split[2];
|
||||
}
|
||||
public static String getGameMongoAdmin() {
|
||||
String[] split = gameMongodb.split("\\?");
|
||||
return split[1];
|
||||
}
|
||||
@Value("${spring.data.gameMongodb.uri}")
|
||||
public void setGameMongodb(String gameMongodb) {
|
||||
AutoServerManager.gameMongodb = gameMongodb;
|
||||
|
|
@ -326,7 +330,7 @@ public class AutoServerManager {
|
|||
String space = " ";
|
||||
|
||||
String command = "bash" + space + path + space + serverInfo.getIp() + space + serverInfo.getServer_id() + space + serverInfo.getCoreName()
|
||||
+ space + getGameMongodb() + space + getRedisHost() + space + getRedisPwd();
|
||||
+ space + getGameMongodb() + space + getRedisHost() + space + getRedisPwd() + space + getGameMongoAdmin();
|
||||
LOGGER.info("清库命令:{}", command);
|
||||
|
||||
Process exec = null;
|
||||
|
|
|
|||
Loading…
Reference in New Issue