xdh
2019-02-21 92eee67f85cbd29feb1287ae5a15ad0c787e95cb
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
F/\c@süddlmZddlZddlmZddlmZmZmZm    Z    ddl
m Z m Z ddl mZmZmZedƒZddlmZddlZdd    lmZmZddlZddlZejƒad
efd „ƒYZdS( iÿÿÿÿ(tThreadN(tsleep(t CommonDefineterrortStattSingletonObject(tCommFunctmylog(t
MMORPGPacktRecvPackProtocoltSendPackProtocolsConfig.DBConfig(t MongoDBServer(tProjSpecialProcesstGMToolCommandMgrtLogicProcessThreadcBseZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z    d„Z
d    „Z d
„Z d „Z d „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((sO.\\TCode\TeamServer\Server4\Servers\PyMongoDataServer\src\LogicProcessThread.pyRs    cCsl|jƒjtjkr1|jƒdkr1tSnd}tj|jƒ|ƒ\}}||j    krht
StS(Nii( t getPackHeadttypeRtatInnert    getLengthRRtReadBYTEt    getBufferRtTrue(RtpacktposR!((sO.\\TCode\TeamServer\Server4\Servers\PyMongoDataServer\src\LogicProcessThread.pyt
canProcess&scCs|jj|ƒdS(N(Rtput(RR'((sO.\\TCode\TeamServer\Server4\Servers\PyMongoDataServer\src\LogicProcessThread.pyt requestPush5scCs/y|jjƒ}Wntjk
r*dSX|S(N(Rt
get_nowaitRtEmptytNone(RR'((sO.\\TCode\TeamServer\Server4\Servers\PyMongoDataServer\src\LogicProcessThread.pytrequestPopNoWait8s
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((sO.\\TCode\TeamServer\Server4\Servers\PyMongoDataServer\src\LogicProcessThread.pytonInnerServerPack?sR   *1                   cCs:t|_tj|ƒtjd|jƒ|jfƒdS(NsThread %s(%s) start...(RRRtstartRtinfotgetNametident(R((sO.\\TCode\TeamServer\Server4\Servers\PyMongoDataServer\src\LogicProcessThread.pyRCks     cCsXtjd|jƒƒt|_x|jƒr<tdƒq#Wtjd|jƒƒdS(NsStopping thread %s...gš™™™™™¹?sThread %s stop ok!(RRDRER&RtisAliveR(R((sO.\\TCode\TeamServer\Server4\Servers\PyMongoDataServer\src\LogicProcessThread.pytstopps
    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&R/tDBConfigtMultiThreadingR.RRRtGetStattLogicProcessCountR R!RR"RBRt getPackPooltfreeRtwarningt outputStringt    ExceptionRt    formatMsgt ERROR_NO_28t    tracebackt
format_exc(RR'tpackTypetetmsg((sO.\\TCode\TeamServer\Server4\Servers\PyMongoDataServer\src\LogicProcessThread.pytrunws4              
         ( " cCstjƒjdƒ}|sdStjƒ}|j|jƒdƒtj|_    |j
|j ƒƒ|j dƒtj |jƒ_|j|ƒdS(NtMergei(R t getServerMgrt    GetServerR    ttagGDBroadcastMergeClienttReadDataR%RtdgBroadcastMergeClientR3t    setBufferR:t setSessionIDt atMergeLogicR R!tpushSend(RR'Rt broadcastPack((sO.\\TCode\TeamServer\Server4\Servers\PyMongoDataServer\src\LogicProcessThread.pyR>–s   cCstjƒjdƒ}|sdStjƒ}|j|jƒdƒtjƒj    |j
ƒ}|szt j d|j ƒƒdStjƒ}|jƒtj|_|j|_|j|_|j|j|jƒj|jƒjtj|jƒj|jƒj|jƒƒdS(NRZisÏò×Ó·þ·¢ËÍÏûϢʧ°Ü %s (R R[R\R    ttagGDMergeMsgToClientR^R%tMergeProxyClientMgrtgetMergeProxyClientMgrtfindClientByCompoundKeytGroupIDRR0t OutputStringR]tClearRR_R3tDatatDataLenR4R6R R7RbR8R9R:(RR'RttoMergeClientMsgtclientRd((sO.\\TCode\TeamServer\Server4\Servers\PyMongoDataServer\src\LogicProcessThread.pyR?£s,  
         cCsötjƒjdƒ}|sdStjƒ}|j|jƒdƒtj|j    ƒ}xœ|D]”}t
|ƒt krÃt |ƒdkrÃxgt |d|ddƒD]}|j||||ƒq WqZt
|ƒtkrZ|j||||ƒqZqZWdS(NRZiii(R R[R\R    ttagGDMergeMsgToClientListR^R%tjsontloadstGroupsR!tlisttlentxranget!_LogicProcessThread__SendMergeMsgtint(RR'RRnt    groupListtmemtgroupID((sO.\\TCode\TeamServer\Server4\Servers\PyMongoDataServer\src\LogicProcessThread.pyR@Âs  $"cCsÆtjƒj|ƒ}|s9tjd||jfƒdStjƒ}|jƒt    j
|_ |j|_|j |_ |j |j|jƒj|jƒjt    j|jƒj|jƒj|jƒƒdS(NsÏò×Ó·þ%s·¢ËÍÏûϢʧ°Ü %s (RfRgRhRR0RlR    R]RkRR_R3RmR4R6R R7RbR8R9R:(RRR'R{RnRoRd((sO.\\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 R[R\R.t GetClientCntRRRt ERROR_NO_173Rt DeployErrorRtIsDebugtbinasciiR0tb2a_hexR%R5R    t tagGMCommandR^t
g_GMCMDMgrtAddPairtOrderIdRR R;t ERROR_NO_172RTRU(RR't GmToolServerRXR‚R6trecvPack((sO.\\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 = %dts7SendToGMToolCommandResult Fail, No Client in GMToolPortsSendToGMToolCommandResult Done(R
ttagGMCommandResultR^R%R R<RRRRˆRTRURR…tPopPairR‡RDROR R[R4RR"RtstGMTooltstDataR:(RR'tSendPackRXtsendViaSessionIDt    SessionIDt    PoolIndext    ServerMgr((sO.\\TCode\TeamServer\Server4\Servers\PyMongoDataServer\src\LogicProcessThread.pyR< s( "     cCsNytj|ƒWn6tjdtjdtjƒƒ}tj|ƒnXdS(NRs\LogicProcessThread::OnGMToolCmdLogicProcessRequest Catch a unexpetcted exception, error = %s(R R=RRRRˆRTRUR(RR'RX((sO.\\TCode\TeamServer\Server4\Servers\PyMongoDataServer\src\LogicProcessThread.pyR=+s "(t__name__t
__module__RR)R+R/RBRCRHRYR>R?R@RwR;R<R=(((sO.\\TCode\TeamServer\Server4\Servers\PyMongoDataServer\src\LogicProcessThread.pyRs                    ,                                     (t    threadingRRttimeRtDBCommonRRRRtCommonRRtProtocolRR    R
t
__import__RItNetR RTtGMToolLogicProcessR R RfRqt GetGMOrderMgrR…R(((sO.\\TCode\TeamServer\Server4\Servers\PyMongoDataServer\src\LogicProcessThread.pyt<module>s "