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