1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
U(®jc@sÍddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZddlZddlZddlZdZdZdZdZd„Zd„Zd„Zd    „Zd
„Zed „Zd „Zd „Zdd„Zd„Z d„Z!de"fd„ƒYZ#d„Z$d„Z%d„Z&d„Z'd„Z(d„Z)d„Z*d„Z+d„Z,d„Z-dS(iÿÿÿÿNsC:\ServerRealTimeBackups.rtbiicCs$tjdƒtƒs tƒndS(NsµØÍ¼·þÎñÆ÷Æô¶¯(t    GameWorldtDebugLogtLoadGameWorldDataFromBackuptLoadGameWorldDataFromDB(((sdD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\DBDataMgr.pyt OnServerStart+s     
cCs tƒdS(N(tSaveGameWorldDataToDB(((sdD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\DBDataMgr.pyt OnServerClose2scCsgtjr dStjƒtjƒtjƒ|j|jgddggkrYtt    ƒn
tt
ƒdS(Nii( t
PyGameDatatg_serverClosingtDBFamilytOnMinutet DBBillboardtDBPalacethourtminutetBackupGameWorldDatatTruetFalse(tcurTime((sdD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\DBDataMgr.pyR
7s    
 
 
! 
c
Csèg}xËtj|ƒD]º\}}}x¨|D] }|jtƒsGq,ntjj||ƒ}||jdƒ jdƒ}t|ƒdkrq,nt    j
|dƒ}t    j
|dƒ}    |j |    ||gƒq,WqW|j dt ƒ|S(Ns.t_iiitreverse(tostwalktendswitht BakFileTypetpathtjointindextsplittlenRtToIntDeftappendtsortR(
tbakPatht bakFileListtparentRt    filenamestfilenametfullPathtbakInfot dataVersionNOtbakTime((sdD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\DBDataMgr.pytGetBakFileSortListFs c
Cstjƒjƒ}d|}tjjt|ƒ}tjd|ƒt|ƒ}|setjdƒdS|d}|d}|d}|t    j
kr²tj d|t    j
fƒ‚ntjd|ƒt |d    ƒ}|j ƒ}|jƒtj|ƒ}    |    s‚nt|    dƒt|    ƒtS(
NsS%ss ¼ÓÔØ±¸µµ: %ss ²»´æÔÚ±¸µµ!iiisk±¸µµÊý¾Ý°æ±¾ºÅУÑéʧ°Ü£¬ÇëʹÓÃÕýÈ·°æ±¾·þÎñÆ÷Æô¶¯ÖØÐµ¼ÈëÊý¾Ý! bakVersionNO=%s, GAMEWORLD_DATA_VERSION_NO=%ss ¶ÁÈ¡±¸µµ: %strb(Rt GetGameWorldt GetServerIDRRRtBakRoottLogR*tDBStructtGAMEWORLD_DATA_VERSION_NOtErrLogtopentreadtclosetCommFunct
DecompresstLoadPyGameDataRR(
tserverIDt
serverNametBakDirR"t finalBakInfot bakVersionNOt bakFilePathtftcompressed_datatsaveData((sdD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\DBDataMgr.pyRWs2
 
 
 
     
 
cCs6tjr dStjs'tjdƒdSttjƒƒ}|sl|tjkrl|tjtdkrldSntj    ƒj
ƒ}d|}t j j t|ƒ}tjd|ƒt j j|ƒsÐt j|ƒntj}tj|tjƒ}t j j |d|||tfƒ}tƒ}tjd|t|ƒ|fƒtj|ƒ}    |    sbtjdƒdStjdt|    ƒƒy*t|d    ƒ}
|
j|    ƒ|
jƒWndSX|t_t|ƒ} xY| t D]M} | d
} y"t j!| ƒtjd | ƒWqÎtj"d | ƒqÎXqÎW|r2t#|ƒndS( Ns¼ÓÔØÊý¾ÝδÍê³É£¬²»´æ´¢±¸µµi<sS%ss·þÎñÆ÷±¸µµ: %ss
%s_%s_%s%ssBak:%s, len=%s, %stServerDataBackupErrorscompress len=%stwbiÿÿÿÿsɾ³ý¶àÓ౸µµÎļþ: %ssɾ³ý¶àÓ౸µµÎļþʧ°Ü: %s($RRt g_loadDataOKRR/tintttimet g_lastRTBTimetBackupIntervalR,R-RRRR.texiststmakedirsR0R1tChangeTimeNumToStrtChConfigtTYPE_Time_Format_YmdHMSRt GetSavePyDataRR6tCompresst SendGameErrorR3twriteR5R*t BackupCopyMaxtremoveR2R(tsaveToDBRR9R:R;R(t
bakTiemStrR>RAR@tfpR"R'tfilePath((sdD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\DBDataMgr.pyRxsV         &
    %            
  cCsVtjƒjƒ}d|}tjjt|ƒ}tjd|ƒtj    |t
ƒdS(NsS%ss Çå¿Õ±¸µµ: %s( RR,R-RRRR.R/R6t    DelFolderR(R9R:R;((sdD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\DBDataMgr.pytClearBackupFile¯s 
cCs0tjdƒtjƒjƒ}t|dƒdS(NsûÓб¸µµÊý¾Ý£¬Ö±½Ó´Ódb¼ÓÔØÊý¾Ý!i(RR/t PyMongoMaint GetUserCtrlDBtreadGameWorldDataR8(t
serverData((sdD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\DBDataMgr.pyRºs  tcCs)|stƒ}ntjƒj|ƒdS(N(RNRZR[tsaveGameWorldData(RA((sdD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\DBDataMgr.pyRÁs cCsFtjƒtƒ}|jƒ}tjdt|ƒt|ƒfƒ|S(NsGetSavePyData!! id = %s-%s(tPlayerActFamilyGCZt OnSavePyDatat GetDBDataMgrt GetSaveDataRR/tidR(t pyGameDataMgrtresult((sdD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\DBDataMgr.pyRNÈs
 
     #cCs_tƒ}tjdt|ƒt|ƒfƒ|j||ƒ}tjƒtjƒt    t
_ |S(NsLoadPyGameData!!id = %s %s( RbRR/RdRt LoadGameDataR`t OnLoadPyDatatGameLogic_ZZBFRRRD(t
gameBuffertposRe((sdD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\DBDataMgr.pyR8Òs    #
 
    tPyGameDataManagercBs#eZd„Zd„Zd„ZRS(cCs|tjƒ|_tjƒ|_tjƒ|_tjƒ|_tj    ƒ|_    t
j ƒ|_ t j ƒ|_ tjƒ|_dS(N(t DBEventTrigt EventTrigMgrtDBPlayerViewCachetPlayerViewCacheMgrR t BillboardMgrtDBMailtMailMgrR    t    FamilyMgrt    DBGameRect
GameRecMgrt
DBFuncTeamt FuncTeamMgrR t    PalaceMgr(tself((sdD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\DBDataMgr.pyt__init__àscCs¢d}||jjƒ7}||jjƒ7}||jjƒ7}||jjƒ7}||jjƒ7}||jjƒ7}||jjƒ7}||jjƒ7}|S(NR^(    RnRcRpRqRsRtRvRxRy(Rztbuff((sdD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\DBDataMgr.pyRcëscCsÐt|ƒ}|jj|||ƒ}|jj|||ƒ}|jj|||ƒ}|jj|||ƒ}|jj|||ƒ}|jj|||ƒ}|jj|||ƒ}|j    j|||ƒ}|S(N(
RRnR8RpRqRsRtRvRxRy(RzRjRktdataslen((sdD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\DBDataMgr.pyRg÷s (t__name__t
__module__R{RcRg(((sdD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\DBDataMgr.pyRlßs          cCs(tj}|s$tƒ}|t_n|S(N(Rtg_pyGameDataManagerRl(Re((sdD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\DBDataMgr.pyRbs
         cCstƒ}|jS(N(RbRn(t    dbDataMgr((sdD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\DBDataMgr.pytGetEventTrigMgr s    cCstƒ}|jS(N(RbRp(R((sdD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\DBDataMgr.pytGetPlayerViewCacheMgrs    cCstƒ}|jS(N(RbRt(R((sdD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\DBDataMgr.pyt GetFamilyMgrs    cCs tƒjƒS(N(R„tGetFamilyActionMgr(((sdD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\DBDataMgr.pyR…scCstƒ}|jS(N(RbRs(R((sdD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\DBDataMgr.pyt
GetMailMgrs    cCstƒ}|jS(N(RbRq(R((sdD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\DBDataMgr.pytGetBillboardMgr#s    cCstƒ}|jS(N(RbRv(R((sdD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\DBDataMgr.pyt GetGameRecMgr(s    cCstƒ}|jS(N(RbRx(R((sdD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\DBDataMgr.pytGetFuncTeamMgr-s    cCstƒ}|jS(N(RbRy(R((sdD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\DBDataMgr.pyt GetPalaceMgr2s    (.R6R0RLRRRZRoR`RiRmR RwRuR    R RrRFRR.RRRRHRRR
R*RRRRYRRRNR8tobjectRlRbR‚RƒR„R…R†R‡RˆR‰RŠ(((sdD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\DBDataMgr.pyt<module>sV                                      ! 7              
     $