From 2b1f9e7dcc20440576ee63014e0080a529ab0486 Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期四, 14 一月 2021 18:31:22 +0800 Subject: [PATCH] 4908 【BT】【主干】gameserver realtime备份过大导致卡顿(优化拍品记录保存期限;输出自定义表存档大小); --- ServerPython/CoreServerGroup/GameServer/Script/PyDataManager.py | 24 +++++++++++++++++------- 1 files changed, 17 insertions(+), 7 deletions(-) diff --git a/ServerPython/CoreServerGroup/GameServer/Script/PyDataManager.py b/ServerPython/CoreServerGroup/GameServer/Script/PyDataManager.py index 7599174..a4df3e7 100644 --- a/ServerPython/CoreServerGroup/GameServer/Script/PyDataManager.py +++ b/ServerPython/CoreServerGroup/GameServer/Script/PyDataManager.py @@ -27,12 +27,14 @@ import AuctionHouse import PlayerAssist import PyGameDataStruct +import IpyGameDataPY import CommFunc +import time def GetSavePyData(): pyGameDataMgr = GetPyGameDataManager() result = pyGameDataMgr.GetSaveData() - GameWorld.DebugLog("GetSavePyData!! id = %s-%s"%(id(pyGameDataMgr), len(result))) + GameWorld.Log("GetSavePyData!! id = %s-%s"%(id(pyGameDataMgr), len(result))) result = binascii.b2a_hex(result) #GameWorld.DebugLog("GetSavePyData!! result = %s-%s"%(result, len(result))) # 字节码在C++转化会发生错误must be string without null bytes, not str,但是可以正常保存,错误会在下次调用便宜接口才会触发 @@ -65,7 +67,7 @@ PlayerAssist.OnSaveAssistThanksData(dbData) savaData += dbData.getBuffer() - GameWorld.Log("Save DBAssistThanks count :%s" % cnt) + GameWorld.Log("Save DBAssistThanks count :%s len=%s" % (cnt, len(savaData))) return CommFunc.WriteDWORD(cntData, cnt) + savaData # 从数据库载入数据 @@ -104,7 +106,7 @@ cnt += 1 savaData += dbData.getBuffer() - GameWorld.Log("Save DBAssist count :%s" % cnt) + GameWorld.Log("Save DBAssist count :%s len=%s" % (cnt, len(savaData))) return CommFunc.WriteDWORD(cntData, cnt) + savaData # 从数据库载入数据 @@ -145,7 +147,7 @@ cnt += 1 savaData += dbData.getBuffer() - GameWorld.Log("Save PlayerViewCachePy count :%s" % cnt) + GameWorld.Log("Save PlayerViewCachePy count :%s len=%s" % (cnt, len(savaData))) return CommFunc.WriteDWORD(cntData, cnt) + savaData # 从数据库载入数据 @@ -177,13 +179,21 @@ cntData = "" cnt = 0 + unSaveCnt = 0 + curTime = int(time.time()) + vaildSeconds = IpyGameDataPY.GetFuncCfg("AuctionHouse", 1) * 3600 * 24 for recordDict in [self.myAuctionItemRecordDict, self.myBidItemRecordDict, self.familyAuctionItemRecordDict]: for recordList in recordDict.values(): for dbData in recordList: + if vaildSeconds: + recordTime = GameWorld.ChangeTimeStrToNum(dbData.RecordTime) + if curTime - recordTime > vaildSeconds: + unSaveCnt += 1 + continue cnt += 1 savaData += dbData.getBuffer() - GameWorld.Log("Save AuctionRecord count :%s" % cnt) + GameWorld.Log("Save AuctionRecord count :%s len=%s unSaveCnt=%s" % (cnt, len(savaData), unSaveCnt)) return CommFunc.WriteDWORD(cntData, cnt) + savaData # 从数据库载入数据 @@ -217,7 +227,7 @@ cnt += 1 savaData += dbData.getBuffer() - GameWorld.Log("Save AuctionAttention count :%s" % cnt) + GameWorld.Log("Save AuctionAttention count :%s len=%s" % (cnt, len(savaData))) return CommFunc.WriteDWORD(cntData, cnt) + savaData # 从数据库载入数据 @@ -273,7 +283,7 @@ cnt += 1 savaData += dbData.getBuffer() - GameWorld.Log("Save AuctionItem count :%s" % cnt) + GameWorld.Log("Save AuctionItem count :%s len=%s" % (cnt, len(savaData))) return CommFunc.WriteDWORD(cntData, cnt) + savaData # 从数据库载入数据 -- Gitblit v1.8.0