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/Player/PlayerFamilyStore.py      |    2 +-
 ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerSealDemon.py        |    2 +-
 ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossRealmPK.py   |    4 ++--
 ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerXMZZ.py             |    2 +-
 ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossBillboard.py |    4 ++--
 ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldBoss.py  |    2 +-
 ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerSocial.py           |   10 +++++-----
 ServerPython/CoreServerGroup/GameServer/Script/PyDataManager.py                 |   24 +++++++++++++++++-------
 ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerCompensation.py     |    4 ++--
 ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerBourse.py           |    4 ++--
 10 files changed, 34 insertions(+), 24 deletions(-)

diff --git a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossBillboard.py b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossBillboard.py
index b7926c8..9eb6861 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossBillboard.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossBillboard.py
@@ -73,13 +73,13 @@
                 cnt += 1
                 savaData += billboardData.getBuffer()
                 
-        GameWorld.Log("Save DBCrossBillboard cnt :%s" % cnt)
+        GameWorld.Log("Save DBCrossBillboard count :%s len=%s" % (cnt, len(savaData)))
         return CommFunc.WriteDWORD(cntData, cnt) + savaData
     
     # 从数据库载入数据
     def LoadPyGameData(self, datas, pos, dataslen):
         cnt, pos = CommFunc.ReadDWORD(datas, pos)
-        GameWorld.Log("Load DBCrossBillboard cnt :%s" % cnt)
+        GameWorld.Log("Load DBCrossBillboard count :%s" % cnt)
         
         for _ in xrange(cnt):
             billboardData = PyGameDataStruct.tagDBCrossBillboard()
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossRealmPK.py b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossRealmPK.py
index 70b2c2d..5351038 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossRealmPK.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossRealmPK.py
@@ -200,7 +200,7 @@
                 cnt += 1
                 savaData += billboardData.getBuffer()
                 
-        GameWorld.Log("SaveCrossPKBillboard cnt :%s" % cnt)
+        GameWorld.Log("SaveCrossPKBillboard cnt :%s len=%s" % (cnt, len(savaData)))
         return CommFunc.WriteDWORD(cntData, cnt) + savaData
     
     # 从数据库载入数据
@@ -2066,7 +2066,7 @@
             cnt += 1
             savaData += overInfoData.getBuffer()
                 
-        GameWorld.Log("SaveDBCrossPKUnNotifyOverInfo cnt :%s" % cnt)
+        GameWorld.Log("SaveDBCrossPKUnNotifyOverInfo cnt :%s len=%s" % (cnt, len(savaData)))
         return CommFunc.WriteDWORD(cntData, cnt) + savaData
     
     # 从数据库载入数据
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldBoss.py b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldBoss.py
index 039f07e..79bce76 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldBoss.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldBoss.py
@@ -806,7 +806,7 @@
             cnt += 1
             savaData += attentionData.getBuffer()
                 
-        GameWorld.Log("SaveBossAttention cnt :%s" % cnt)
+        GameWorld.Log("SaveBossAttention cnt :%s len=%s" % (cnt, len(savaData)))
         return CommFunc.WriteDWORD(cntData, cnt) + savaData
     
     # 从数据库载入数据
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerBourse.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerBourse.py
index 162afff..b6e3fcc 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerBourse.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerBourse.py
@@ -775,7 +775,7 @@
                 cnt += 1
                 savaData += record.getBuffer()
                 
-        GameWorld.Log("SaveBourseRecord cnt :%s" % cnt)
+        GameWorld.Log("SaveBourseRecord cnt :%s len=%s" % (cnt, len(savaData)))
         return CommFunc.WriteDWORD(cntData, cnt) + savaData
     
     # 从数据库载入好友数据
@@ -836,7 +836,7 @@
             cnt += 1
             savaData += itemLastPrice.getBuffer()
                 
-        GameWorld.Log("SaveBourseItemLastPrice cnt :%s" % cnt)
+        GameWorld.Log("SaveBourseItemLastPrice cnt :%s len=%s" % (cnt, len(savaData)))
         return CommFunc.WriteDWORD(cntData, cnt) + savaData
     
     # 从数据库载入好友数据
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerCompensation.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerCompensation.py
index 84c3f33..9ebe153 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerCompensation.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerCompensation.py
@@ -90,13 +90,13 @@
                 cnt += 1
                 savaData += mailObj.getBuffer()
                 
-        GameWorld.Log("Save DBCrossPersonalCompensation cnt :%s" % cnt)
+        GameWorld.Log("Save DBCrossPersonalCompensation count :%s, len=%s" % (cnt, len(savaData)))
         return CommFunc.WriteDWORD(cntData, cnt) + savaData
     
     # 从数据库载入数据
     def LoadPyGameData(self, datas, pos, dataslen):
         cnt, pos = CommFunc.ReadDWORD(datas, pos)
-        GameWorld.Log("Load DBCrossPersonalCompensation cnt :%s" % cnt)
+        GameWorld.Log("Load DBCrossPersonalCompensation count :%s" % cnt)
         
         for _ in xrange(cnt):
             mailObj = PyGameDataStruct.tagDBCrossPersonalCompensation()
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFamilyStore.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFamilyStore.py
index 113bc08..a91de29 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFamilyStore.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFamilyStore.py
@@ -187,7 +187,7 @@
                 cnt += 1
                 savaData += storeItem.getBuffer()
                 
-        GameWorld.Log("SaveFamilyStoreItem cnt :%s"%cnt)
+        GameWorld.Log("SaveFamilyStoreItem cnt :%s len=%s" % (cnt, len(savaData)))
         return CommFunc.WriteDWORD(cntData, cnt) + savaData
     
     # 从数据库载入好友数据
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerSealDemon.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerSealDemon.py
index 94b3f58..d948b78 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerSealDemon.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerSealDemon.py
@@ -66,7 +66,7 @@
             cnt += 1
             savaData += sealDemonRecord.getBuffer()
                 
-        GameWorld.Log("SaveSealDemonRecord cnt :%s" % cnt)
+        GameWorld.Log("SaveSealDemonRecord cnt :%s len=%s" % (cnt, len(savaData)))
         return CommFunc.WriteDWORD(cntData, cnt) + savaData
     
     # 从数据库载入好友数据
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerSocial.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerSocial.py
index bb54b83..770c385 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerSocial.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerSocial.py
@@ -268,7 +268,7 @@
                 cnt += 1
                 savaData += friend.getBuffer()
         
-        GameWorld.Log("SaveFriendData cnt :%s"%cnt)
+        GameWorld.Log("SaveFriendData cnt :%s len=%s" % (cnt, len(savaData)))
         return CommFunc.WriteDWORD(cntData, cnt) + savaData
 
     # 从数据库载入好友数据
@@ -385,7 +385,7 @@
                 cnt += 1
                 savaData += socialPlayer.getBuffer()
         
-        GameWorld.Log("!!SaveEnemyData cnt :%s"%cnt)
+        GameWorld.Log("!!SaveEnemyData cnt :%s len=%s" % (cnt, len(savaData)))
         return CommFunc.WriteDWORD(cntData, cnt) + savaData
 
     # 从数据库载入
@@ -541,7 +541,7 @@
                 cnt += 1
                 savaData += socialPlayer.getBuffer()
         
-        GameWorld.Log("!!SaveContactsData cnt :%s"%cnt)
+        GameWorld.Log("!!SaveContactsData cnt :%s len=%s" % (cnt, len(savaData)))
         return CommFunc.WriteDWORD(cntData, cnt) + savaData
 
     # 从数据库载入
@@ -622,7 +622,7 @@
                 cnt += 1
                 savaData += socialPlayer.getBuffer()
         
-        GameWorld.Log("!!SaveBlacklistData cnt :%s"%cnt)
+        GameWorld.Log("!!SaveBlacklistData cnt :%s len=%s" % (cnt, len(savaData)))
         return CommFunc.WriteDWORD(cntData, cnt) + savaData
 
     # 从数据库载入
@@ -765,7 +765,7 @@
             cnt += 1
             savaData += socialPlayer.playerInfo.getBuffer()
         
-        GameWorld.Log("SaveSocialData cnt :%s"%cnt)
+        GameWorld.Log("SaveSocialData cnt :%s len=%s" % (cnt, len(savaData)))
         return CommFunc.WriteDWORD(cntData, cnt) + savaData
 
 
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerXMZZ.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerXMZZ.py
index 17982a1..83b4eb3 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerXMZZ.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerXMZZ.py
@@ -574,7 +574,7 @@
             cnt += 1
             savaData += XMZZData.getBuffer()
                 
-        GameWorld.Log("SaveXMZZ cnt :%s" % cnt)
+        GameWorld.Log("SaveXMZZ cnt :%s len=%s" % (cnt, len(savaData)))
         return CommFunc.WriteDWORD(cntData, cnt) + savaData
     
     # 从数据库载入数据
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