From bed6ef2cbf2bc9c209f2f62d53b16654f237d7c3 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期一, 23 五月 2022 17:00:21 +0800
Subject: [PATCH] 9415 【BT】【后端】古神战场(战场结算排名奖励及周榜排名奖励改为超出配置的排名无奖励)
---
Tool/RemoteTool/RemoteServer/webapp.py | 35 +++++++++++++++++++++++++++++++----
1 files changed, 31 insertions(+), 4 deletions(-)
diff --git a/Tool/RemoteTool/RemoteServer/webapp.py b/Tool/RemoteTool/RemoteServer/webapp.py
index 89117a6..b6c67a3 100644
--- a/Tool/RemoteTool/RemoteServer/webapp.py
+++ b/Tool/RemoteTool/RemoteServer/webapp.py
@@ -21,6 +21,8 @@
from email.mime.text import MIMEText
from email.header import Header
import datetime
+import subprocess
+import urllib
# get: request.query.username request.GET.get('username','')
# post: request.forms.get('username') request.POST.get('username')
#===============================================================================
@@ -62,7 +64,11 @@
pResult = pResult.read()
if "PID" in pResult or "pid" in pResult:
return " =======服务器已经开启,请再次确认服务器情况, EventServer.exe运行中"
- os.system(r"call D:\ProjectServer\LaunchServerManager\正常开服.bat")
+ #os.system(r"call D:\ProjectServer\LaunchServerManager\正常开服.bat")
+ # system call会导致子进程占用父进程的文件描述符导致端口无法释放, 影响重启使用
+ # 如果需要保持子进程持续长期运行的应该调用 subprocess.Popen(cmd, close_fds=True)
+ cmd = r"D:\ProjectServer\LaunchServerManager\正常开服.bat"
+ subprocess.Popen(cmd, close_fds=True)
return "open success"
elif result == "close":
# 记得关服后或者重启机器需自动启动服务器控制台
@@ -93,9 +99,10 @@
elif stateType in ["MapError", "GameServerError", "PyMongoError"]:
#groupID=%s&userDBName=%s&Type=PyMongoError
- ServerInfo = "错误类型:%s 服务器组:%s, dbname:%s"%(stateType,
+ ServerInfo = "错误类型:%s 服务器组:%s, dbname:%s msg:%s"%(stateType,
dataDict.get("groupID", 0),
- dataDict.get("userDBName", 0))
+ dataDict.get("userDBName", 0),
+ urllib.unquote_plus(dataDict.get("MsgInfo", "0")))
SendEmail(ServerInfo)
return
elif stateType == "MapDisconnect":
@@ -106,6 +113,21 @@
dataDict.get("userDBName", 0))
SendEmail(ServerInfo)
return
+ elif stateType == "GameWarning":
+ # 游戏通用警告邮件使用
+ ServerInfo = "游戏警报:服务器组:%s, dbname:%s, 警告信息:%s"%(
+ dataDict.get("groupID", 0),
+ dataDict.get("userDBName", 0),
+ urllib.unquote_plus(dataDict.get("MsgInfo", 0)))
+ SendEmail(ServerInfo)
+ elif stateType in ["MapServerRaiseException", "GameServerRaiseException", "RaiseException"]:
+ ServerInfo = "%s 抛出Try异常报错:服务器组:%s, dbname:%s, MapID:%s 异常信息:%s"%(
+ stateType,
+ dataDict.get("groupID", 0),
+ dataDict.get("userDBName", 0),
+ dataDict.get("mapID", 0),
+ urllib.unquote_plus(dataDict.get("MsgInfo", 0)))
+ SendEmail(ServerInfo)
elif stateType == "QueryMapOK":
if g_AllMapCnt == 0:
if not os.path.exists(".\MapCount.txt"):
@@ -117,6 +139,11 @@
return "服务器开启完毕,地图数:%s"%g_AllMapCnt
except Exception, e:
print e
+ ServerInfo = "控制台报错,服务器异常! %s"%e
+ try:
+ SendEmail(ServerInfo)
+ except:
+ print "无法发送邮件"
# 邮件汇报
def SendEmail(ServerInfo):
@@ -130,7 +157,7 @@
sender = '2199274165@qq.com'
# 这里可以填写需要接收汇报的邮件地址
- receivers = ['305670599@qq.com']#, '1142397645@qq.com']
+ receivers = ['305670599@qq.com']#, '1142397645@qq.com', '305670599@qq.com', '995275190@qq.com']
message = MIMEText('异常汇报:%s'%ServerInfo, 'plain', 'gbk')
message['From'] = Header("游戏服务器异常汇报", 'gbk')
--
Gitblit v1.8.0