hch
3 天以前 94a2808b4e2a2ce3b9f6ade33bc52757797cdfa7
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
‡l ic@s*ddlmZddlZddlmZddlmZmZmZm    Z    ddl
m Z m Z ddl mZmZmZmZedƒZddlmZddlZdd    lmZmZddlZddlZddlZdd
lmZddlZej ƒa!d efd „ƒYZ"dS( iÿÿÿÿ(tThreadN(tsleep(t CommonDefineterrortStattSingletonObject(tCommFunctmylog(t
MMORPGPacktRecvPackProtocoltSendPackProtocoltMergeServerRecvProtocolsConfig.DBConfig(t MongoDBServer(tProjSpecialProcesstGMToolCommandMgr(t ServersConfigtLogicProcessThreadcBs}eZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z    d„Z
d    „Z d
„Z d „Z d „ZRS( cCsYtj|ddƒ||_tjtjtjtjf|_t    j    ƒ|_
t |_ dS(NtnameR( Rt__init__t_LogicProcessThread__serverRtlsdDataServerPreparedAsktgstGMToolCommandtgstGMToolCommandResulttgstCrossServerToServerPackt'_LogicProcessThread__processRequestTypetQueuet!_LogicProcessThread__requestQueuetFalset _LogicProcessThread__elegantExit(tselft    serverObj((s.\\LogicProcessThread.pyRs    cCsl|jƒjtjkr1|jƒdkr1tSnd}tj|jƒ|ƒ\}}||j    krht
StS(Nii( t getPackHeadttypeRtatInnert    getLengthRRtReadBYTEt    getBufferRtTrue(RtpacktposR ((s.\\LogicProcessThread.pyt
canProcess'scCs|jj|ƒdS(N(Rtput(RR&((s.\\LogicProcessThread.pyt requestPush6scCs/y|jjƒ}Wntjk
r*dSX|S(N(Rt
get_nowaitRtEmptytNone(RR&((s.\\LogicProcessThread.pytrequestPopNoWait9s
cCsvd}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    ƒtStS(
NisReturn data server prepared!sReturn data server prepared!!!s#onInnerServerPack gstGMToolCommand!s'onInnerServerPack gstGMToolCommand! Ends)onInnerServerPack gstGMToolCommandResult!s-onInnerServerPack gstGMToolCommandResult! Ends3onInnerServerPack gstCrossServerToServerPack start!s1onInnerServerPack gstCrossServerToServerPack end!(RR#R$RRRtdebugR
ttagDataServerInitOKtdgDataServerPrepareOKtTypeRtpackSendBySessionIDt getSessionIDRt    sessionIDt    poolIndexR t
srcSvrTypet
dstSvrTypet    GetBufferR%RtOnGMToolCommandRtOnGMToolCommandResultRtOnCrossServerToServerPackR(RR&R'R tsendPack((s.\\LogicProcessThread.pytonInnerServerPack@s4   *1          cCs:t|_tj|ƒtjd|jƒ|jfƒdS(NsThread %s(%s) start...(RRRtstartRtinfotgetNametident(R((s.\\LogicProcessThread.pyR?^s     cCsXtjd|jƒƒt|_x|jƒr<tdƒq#Wtjd|jƒƒdS(NsStopping thread %s...gš™™™™™¹?sThread %s stop ok!(RR@RAR%RtisAliveR(R((s.\\LogicProcessThread.pytstopcs
    cCs,x%tr'y•|jƒ}|dkr(Pntjƒjd7_|jƒj}|tj    kr†|j
|ƒr†t j ƒj |ƒwq†ntjd|jƒƒWqtk
rë}tjdtjd|tjƒfƒ}tj|ƒqqtjdtjdtjƒƒ}tj|ƒqqXqWdS(Nispack %s not processed!Rs"Exception %s caught!traceback = %ss'Unknown exception caught!traceback = %s(R%R.R-RtGetStattLogicProcessCountRR RR!R>Rt getPackPooltfreeRtwarningt outputStringt    ExceptionRt    formatMsgt ERROR_NO_28t    tracebackt
format_exc(RR&tpackTypetetmsg((s.\\LogicProcessThread.pytrunjs(          ( " cCsÎtjƒ}|j|jƒƒtj|j|jƒ}tj    |kr”t
|tj    ƒ|_t |jƒ|_ |j |jƒƒ|jtj    ƒnt |ƒdkrªdS|j|||ƒtjdƒdS(NiR<(R ttagLPStringDatatReadDataR$RtFilterServerListt
ServerListtDirTypetDBConfigt    GroupNametstrtlent    ServerLent sendMapStringR9tpopt!_LogicProcessThread__SendMergeMsgRR/(RR&trecvPacktserverGroupDic((s.\\LogicProcessThread.pyR<„s  c    
Csítj r{tjr{tjƒ}|s)dSt|ƒ|_t|jƒ|_|j    |j
ƒƒ|j |ƒt j dƒdStjƒjdƒ}|sšdSd|kr»tj|jƒ}nx|jƒD]\}}t|ƒ|_t|jƒ|_|tjkr|j|j
ƒƒqÈntjƒj|ƒ}|sUt j d||fƒqÈnt|ƒ|_t|jƒ|_|j    |j
ƒƒ|j|j|jƒj|jƒjtj|jƒj |jƒj!|j"ƒƒqÈWt j dƒdS(Nsforward to serversroute HubtMerget    AllServersÏò×Ó·þ%s·¢ËÍÏûϢʧ°Ü %s sforward to serversroute Child(#RYtIsMsgFowardHubtMsgFowardHubIPtServerRouteClienttGetServersRouteChildR[RWR\R]t    setBufferR9tSendPackRR/R t getServerMgrt    GetServerRt GetAllServerRXt    iteritemsRZR^tMergeProxyClientMgrtgetMergeProxyClientMgrtfindClientByCompoundKeyR3R5RR6RR!R7R8R$(    RR&RaRbtserverRouteClientRt    groupNamet
serverListtclient((s.\\LogicProcessThread.pyt__SendMergeMsg sJ          cCsÔtjƒjdƒ}|dkr%dS|jƒdkr`tjdtjdƒ}tj    |ƒdSt
j ƒr›ddl }tj d|j|jƒƒƒn|jƒ}tjƒ}|j|jƒƒtj|j|ƒtkrådStj|j|jƒ}tj|kr—yOt|tjƒ|_t|jƒ|_ |j!|j"ƒƒt#j$||ƒWq—tjdtj%dt&j'ƒƒ}tj|ƒq—Xn|j(tjƒt|ƒdkr½dS|j)|||ƒdS(NtGMTooliRsILogicProcessThread::OnGMToolCommand Recv Cmd, but no Client in GMToolPortiÿÿÿÿsbuf = %ssMLogicProcessThread::OnGMToolCommand Catch a unexpetcted exception, error = %s(*R RkRlR-t GetClientCntRRLt ERROR_NO_173Rt DeployErrorRtIsDebugtbinasciiR/tb2a_hexR$R4R    t tagGMCommandRUt
g_GMCMDMgrtAddPairtOrderIdRRRVRWRXRYRZR[R\R]RiR9R R:t ERROR_NO_172RNROR_R`(RR&t GmToolServerRRR|R5RaRb((s.\\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
ttagGMCommandResultRUR$R R;RRLR‚RNRORRtPopPairRR@RIR RkR3RR!RtstGMToolt stCenterGateR9(RR&RjRRtsendViaSessionIDt    SessionIDt    PoolIndext    ServerMgr((s.\\LogicProcessThread.pyR;s( "     cCsVtjƒ}|jddƒ}d}d}|j|||tjtjtj|ƒdS(Nt RouteServeriiÿÿÿÿ(    R RktgetClientSessionIDByNameR3Rt atWorldLogicRtstRouteRˆ(RtbufRŒR‰RŠR‹((s.\\LogicProcessThread.pyR^(s  (t__name__t
__module__RR(R*R.R>R?RDRSR<R`R:R;R^(((s.\\LogicProcessThread.pyRs                                         8    -    #(#t    threadingRRttimeRtDBCommonRRRRtCommonRRtProtocolRR    R
R t
__import__RYtNetR RNtGMToolLogicProcessR RRotjsontcPickletConfigRRgt GetGMOrderMgrRR(((s.\\LogicProcessThread.pyt<module>s  ""