hwj35
2025-06-23 aa0f971ae9a59f0fd98d57b6c1d1663a270be92c
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
PºÆgc@sddlmZddlZddlmZddlmZmZmZm    Z    ddl
m Z m Z ddl mZmZmZedƒZddlmZddlZdd    lmZmZdd
lmZddlZddlZddlZejƒad efd „ƒYZ dS( iÿÿÿÿ(tThreadN(tsleep(t CommonDefineterrortStattSingletonObject(tCommFunctmylog(t
MMORPGPacktRecvPackProtocoltSendPackProtocolsConfig.DBConfig(t MongoDBServer(tProjSpecialProcesstGMToolCommandMgr(t CtrlDBManagertLogicProcessThreadcBs˜eZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z    d„Z
d    „Z d
„Z d „Z d „Zd „Zd„Zd„ZRS(cCsktj|ddƒ||_tjtjtjtjtjtj    tj
f|_ t j ƒ|_ t|_dS(NtnameR(Rt__init__t_LogicProcessThread__serverRtlsdDataServerPreparedAsktgstGMToolCommandtgstGMToolCommandResulttgstGMToolCmdLogicProcessRequesttgstBroadcastMergeClienttgstSendDBMergeClientMsgtgstSendDBMergeClientListMsgt'_LogicProcessThread__processRequestTypetQueuet!_LogicProcessThread__requestQueuetFalset _LogicProcessThread__elegantExit(tselft    serverObj((sN.\TCode\TeamServer\Server4\Servers\PyMongoDataServer\src\LogicProcessThread.pyRs    cCsl|jƒjtjkr1|jƒdkr1tSnd}tj|jƒ|ƒ\}}||j    krht
StS(Nii( t getPackHeadttypeRtatInnert    getLengthRRtReadBYTEt    getBufferRtTrue(RtpacktposR"((sN.\TCode\TeamServer\Server4\Servers\PyMongoDataServer\src\LogicProcessThread.pyt
canProcess(scCs|jj|ƒdS(N(Rtput(RR(((sN.\TCode\TeamServer\Server4\Servers\PyMongoDataServer\src\LogicProcessThread.pyt requestPush7scCs/y|jjƒ}Wntjk
r*dSX|S(N(Rt
get_nowaitRtEmptytNone(RR(((sN.\TCode\TeamServer\Server4\Servers\PyMongoDataServer\src\LogicProcessThread.pytrequestPopNoWait:s
cCs$d}tj|jƒ|ƒ\}}|tjkrÄtjdƒtjƒ}tj    |_
|j j |j ƒ|jƒj|jƒj|jƒj|jƒj|jƒj|jƒƒtjdƒtS|tjkrþtjdƒ|j|ƒtjdƒtS|tjkr8tjdƒ|j|ƒtjdƒtS|tjkrrtjdƒ|j|ƒtjd    ƒtS|tjkr¬tjd
ƒ|j|ƒtjd ƒtS|tjkrætjd ƒ|j|ƒtjd ƒtS|tj kr tjdƒ|j!|ƒtjdƒtSt"S(NisReturn data server prepared!sReturn data server prepared!!!s#onInnerServerPack gstGMToolCommand!s'onInnerServerPack gstGMToolCommand! Ends)onInnerServerPack gstGMToolCommandResult!s-onInnerServerPack gstGMToolCommandResult! Ends2onInnerServerPack gstGMToolCmdLogicProcessRequest!s6onInnerServerPack gstGMToolCmdLogicProcessRequest! Ends0onInnerServerPack gstBroadcastMergeClient start!s.onInnerServerPack gstBroadcastMergeClient end!s0onInnerServerPack gstSendDBMergeClientMsg start!s.onInnerServerPack gstSendDBMergeClientMsg end!s4onInnerServerPack gstSendDBMergeClientListMsg start!s2onInnerServerPack gstSendDBMergeClientListMsg end!(#RR%R&RRRtdebugR
ttagDataServerInitOKtdgDataServerPrepareOKtTypeRtpackSendBySessionIDt getSessionIDR!t    sessionIDt    poolIndexR"t
srcSvrTypet
dstSvrTypet    GetBufferR'RtOnGMToolCommandRtOnGMToolCommandResultRtOnGMToolCmdLogicProcessRequestRtOnBroadcastMergeClientRtOnMergeMsgToClientRtOnMergeMsgToClientListR(RR(R)R"tsendPack((sN.\TCode\TeamServer\Server4\Servers\PyMongoDataServer\src\LogicProcessThread.pytonInnerServerPackAsR   *1                   cCs:t|_tj|ƒtjd|jƒ|jfƒdS(NsThread %s(%s) start...(RRRtstartRtinfotgetNametident(R((sN.\TCode\TeamServer\Server4\Servers\PyMongoDataServer\src\LogicProcessThread.pyRDms     cCsXtjd|jƒƒt|_x|jƒr<tdƒq#Wtjd|jƒƒdS(NsStopping thread %s...gš™™™™™¹?sThread %s stop ok!(RRERFR'RtisAliveR(R((sN.\TCode\TeamServer\Server4\Servers\PyMongoDataServer\src\LogicProcessThread.pytstoprs
    cCsaxZtr\yÊ|jƒ}tjrM|dkrr|jr:Pntdƒwqrn%|dkr]Pntjƒj    d7_    |j
ƒj }|t j kr»|j|ƒr»tjƒj|ƒwq»ntjd|jƒƒWqtk
r }tjdtjd|tjƒfƒ}tj|ƒqqtjdtjdtjƒƒ}tj|ƒqqXqWdS(Ngš™™™™™¹?ispack %s not processed!Rs"Exception %s caught!traceback = %ss'Unknown exception caught!traceback = %s(R'R0tDBConfigtMultiThreadingR/RRRtGetStattLogicProcessCountR!R"RR#RCRt getPackPooltfreeRtwarningt outputStringt    ExceptionRt    formatMsgt ERROR_NO_28t    tracebackt
format_exc(RR(tpackTypetetmsg((sN.\TCode\TeamServer\Server4\Servers\PyMongoDataServer\src\LogicProcessThread.pytrunys4              
         ( " cCs'| s't|dƒ s't|dƒ r+dStj|jƒ}|jddƒ}|jdiƒ}|tjkrî|jddƒ}|jddƒ}|sËtjƒj    d    ƒ}|j
|ƒ}||d<nt j d
||t |ƒfƒndS||d<tj|d ƒ|_t |jƒ|_dS( NtDatatDataLentMsgTypeiÿÿÿÿtplayerIDitpackDatatt
UserCtrlDBs/·¢ËÍ×Ó·þ´øÉÏÍæ¼Ò´ò°üÊý¾Ý: %s,playerID=%s,len=%si(thasattrtcPickletloadsR[tgetRt!CrossServerMsg_PushPlayerPackDataRt
getCtrlMgrtgetCtrlDBByNametgetPlayerPackDataRR1tlentdumpsR\(RttoMergeClientPacktmsgDicttmsgTypetmsgDataR^R_t
userCtrlDB((sN.\TCode\TeamServer\Server4\Servers\PyMongoDataServer\src\LogicProcessThread.pyt__sendToMergeClientWithPackData˜s$' #
c    CsÃtjƒjdƒ}|sdStjƒ}|j|jƒdƒtj|_    t
j ƒj ƒ}x]|D]U}|j |j|jƒj|jƒjtj|jƒj|jƒj|jƒƒqfWdS(NtMergei(R t getServerMgrt    GetServerR    ttagGDBroadcastMergeClienttReadDataR&RtdgBroadcastMergeClientR4tMergeProxyClientMgrtgetMergeProxyClientMgrt getClientListR5R7R!R8t atMergeLogicR9R:R;(RR(R t broadcastPackt
clientListtclient((sN.\TCode\TeamServer\Server4\Servers\PyMongoDataServer\src\LogicProcessThread.pyR?³s         cCsðtjƒjdƒ}|sdStjƒ}|j|jƒdƒtjƒj    |j
ƒ}|scdStj ƒ}|j ƒt j|_|j|_|j|_|j|j|jƒj|jƒjt j|jƒj|jƒj|jƒƒdS(NRri(R RsRtR    ttagGDMergeMsgToClientRvR&RxRytfindClientByCompoundKeytGroupIDRutClearRRwR4R[R\R5R7R!R8R{R9R:R;(RR(R ttoMergeClientMsgR~R|((sN.\TCode\TeamServer\Server4\Servers\PyMongoDataServer\src\LogicProcessThread.pyR@Ôs*  
         cCs)tjƒjdƒ}|sdStjƒ}|j|jƒdƒtj|j    ƒ}t
j d|ƒt |ƒdkr†|j |ƒnxœ|D]”}t|ƒtkröt |ƒdkröxgt|d|ddƒD]}|j||||ƒqÓWqt|ƒtkr|j||||ƒqqWdS(NRris"OnMergeMsgToClientListÏò×Ó·þ×é %s ii(R RsRtR    ttagGDMergeMsgToClientListRvR&RcRdtGroupsRR1Rjt2_LogicProcessThread__sendToMergeClientWithPackDataR"ttupletxranget!_LogicProcessThread__SendMergeMsgtint(RR(R Rƒt    groupListtmemtgroupID((sN.\TCode\TeamServer\Server4\Servers\PyMongoDataServer\src\LogicProcessThread.pyRAós  $"cCs¬tjƒj|ƒ}|sdStjƒ}|jƒtj|_|j    |_    |j
|_
|j |j |j ƒj |j ƒjtj|j ƒj|j ƒj|jƒƒdS(N(RxRyR€R    RuR‚RRwR4R[R\R5R7R!R8R{R9R:R;(RR R(RRƒR~R|((sN.\TCode\TeamServer\Server4\Servers\PyMongoDataServer\src\LogicProcessThread.pyt__SendMergeMsg
s  
         cCs3tjƒjdƒ}|dkr%dS|jƒdkr`tjdtjdƒ}tj    |ƒdSt
j ƒr›ddl }tj d|j|jƒƒƒn|jƒ}tjƒ}|j|jƒƒtj|j|ƒtkrådSytj|ƒWn6tjdtjdtjƒƒ}tj|ƒnXdS(NtGMTooliRsILogicProcessThread::OnGMToolCommand Recv Cmd, but no Client in GMToolPortiÿÿÿÿsbuf = %ssMLogicProcessThread::OnGMToolCommand Catch a unexpetcted exception, error = %s(R RsRtR/t GetClientCntRRSt ERROR_NO_173Rt DeployErrorRtIsDebugtbinasciiR1tb2a_hexR&R6R    t tagGMCommandRvt
g_GMCMDMgrtAddPairtOrderIdRR R<t ERROR_NO_172RURV(RR(t GmToolServerRYR”R7trecvPack((sN.\TCode\TeamServer\Server4\Servers\PyMongoDataServer\src\LogicProcessThread.pyR<"s(    #  "cCs tjƒ}|j|jƒƒytj|ƒ}Wn6tjdtjdt    j
ƒƒ}t j|ƒnXt j |jƒ}d}d}t jd|||fƒ|dkrÀt jdƒdStjƒ}|j|||tjtjtj|jƒƒt jdƒdS(    NRsSLogicProcessThread::OnGMToolCommandResult Catch a unexpetcted exception, error = %siiÿÿÿÿsMSendToGMToolCommandResult sendViaSessionID = %s,SessionID = %d,PoolIndex = %dR`s7SendToGMToolCommandResult Fail, No Client in GMToolPortsSendToGMToolCommandResult Done(R
ttagGMCommandResultRvR&R R=RRSRšRURVRR—tPopPairR™RERPR RsR5RR#RtstGMTooltstDataR;(RR(tSendPackRYtsendViaSessionIDt    SessionIDt    PoolIndext    ServerMgr((sN.\TCode\TeamServer\Server4\Servers\PyMongoDataServer\src\LogicProcessThread.pyR=As( "     cCsNytj|ƒWn6tjdtjdtjƒƒ}tj|ƒnXdS(NRs\LogicProcessThread::OnGMToolCmdLogicProcessRequest Catch a unexpetcted exception, error = %s(R R>RRSRšRURVR(RR(RY((sN.\TCode\TeamServer\Server4\Servers\PyMongoDataServer\src\LogicProcessThread.pyR>`s "(t__name__t
__module__RR*R,R0RCRDRIRZR†R?R@RAR‰R<R=R>(((sN.\TCode\TeamServer\Server4\Servers\PyMongoDataServer\src\LogicProcessThread.pyRs                     ,                    !                    (!t    threadingRRttimeRtDBCommonRRRRtCommonRRtProtocolRR    R
t
__import__RJtNetR RUtGMToolLogicProcessR R t LogicProcessRRxtjsonRct GetGMOrderMgrR—R(((sN.\TCode\TeamServer\Server4\Servers\PyMongoDataServer\src\LogicProcessThread.pyt<module>s "