From 728f5ff7f5cb2fbfabdb21c2f2fb2f78de3ef56c Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期三, 03 一月 2024 16:25:58 +0800
Subject: [PATCH] 10061 python代码在线重读(批量重读pymongo支持)
---
Tool/RemoteTool/RemoteServer/control.py | 40 +++++++++++++++++++
ServerPython/db/PyMongoDataServer/GMToolLogicProcess/Commands/GMT_ReloadPymongo.py | 27 +++++++++++++
2 files changed, 66 insertions(+), 1 deletions(-)
diff --git a/ServerPython/db/PyMongoDataServer/GMToolLogicProcess/Commands/GMT_ReloadPymongo.py b/ServerPython/db/PyMongoDataServer/GMToolLogicProcess/Commands/GMT_ReloadPymongo.py
new file mode 100644
index 0000000..fd60fab
--- /dev/null
+++ b/ServerPython/db/PyMongoDataServer/GMToolLogicProcess/Commands/GMT_ReloadPymongo.py
@@ -0,0 +1,27 @@
+#!/usr/bin/python
+# -*- coding: GBK -*-
+#-------------------------------------------------------------------------------
+#
+##@package PyMongoDataServer.GMToolLogicProcess.Commands.GMT_ReloadPymongo
+#
+# @todo:重读Pymongo
+# @author hxp
+# @date 2024-01-02
+# @version 1.0
+#
+# 详细描述: 重读Pymongo
+#
+#-------------------------------------------------------------------------------
+#"""Version = 2024-01-02 16:00"""
+#-------------------------------------------------------------------------------
+
+import GMCommon
+
+## 收到gm命令执行
+# @param gmCmdDict:gm命令字典
+# @return None
+def OnExec(gmCmdDict):
+ from CmdShell import ReloadModule
+ ReloadModule.DoReload()
+ return GMCommon.Def_Success, ''
+
diff --git a/Tool/RemoteTool/RemoteServer/control.py b/Tool/RemoteTool/RemoteServer/control.py
index d44d7d6..4ee303a 100644
--- a/Tool/RemoteTool/RemoteServer/control.py
+++ b/Tool/RemoteTool/RemoteServer/control.py
@@ -92,7 +92,42 @@
except Exception, e:
WriteResult( pushurl+ " 重读失败" + str(e))
return False
+
+# 重读Pymongo,对应GMkey
+def ReloadPymongo(pushurl):
+ # 默认端口80,有需要直接改地址
+ try:
+ # GM推送地址
+ gmurl = "http://%s/Server/Tool.php"%(pushurl)
+ gmkey = "2" # 高级key
+ if not gmkey or not gmurl:
+ return
+
+ pack_data = {};
+ pack_data["pack_type"] = "GMT_ReloadPymongo"
+
+ pack_data["key"] = gmkey;
+ pack_data['coding'] = "utf8";
+ #使用key加密
+ pack_data_dict = json.dumps(pack_data)
+ sign = md5.md5(pack_data_dict+gmkey).hexdigest()
+ post = {}
+ post['pack'] = pack_data_dict;
+ post['sign'] = sign;
+ result = urllib2.urlopen(gmurl, urllib.urlencode(post), 10)
+
+ content = result.read()
+ result.close()
+ resultDict = json.loads( content)
+ if resultDict.get("ResultType") == 0:
+ WriteResult( pushurl + " 重读成功!!!")
+ return True
+ WriteResult( pushurl+ " 重读失败! ret:%s" % content)
+ return False
+ except Exception, e:
+ WriteResult( pushurl+ " 重读失败! e:" + str(e))
+ return False
def WriteResult(msg):
global g_fileLog
@@ -109,7 +144,7 @@
# 服务器列表
f = open(r'.\qufu.txt','r')
- result = raw_input("请输入字母 k.开服 g.关服 c.查看地图运行情况(首开服) r.重读配置")
+ result = raw_input("请输入字母 k.开服 g.关服 c.查看地图运行情况(首开服) r.重读配置 rpym.重读pymongo")
result = result.strip()
WriteResult("==开始执行命令:%s"%result)
if result == 'k':
@@ -124,6 +159,9 @@
elif result == 'r':
for line in f.readlines():
ReloadConfig(line.strip())
+ elif result == 'rpym':
+ for line in f.readlines():
+ ReloadPymongo(line.strip())
else:
WriteResult("==执行错误的命令:%s"%result)
f.close()
--
Gitblit v1.8.0