hwj35
2025-10-14 fd4b89267ffb620c0d8615deabc8d240d887b054
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
æñíhc@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%.\\ServersRoute\LogicProcessThread.pyRs    cCsl|jƒjtjkr1|jƒdkr1tSnd}tj|jƒ|ƒ\}}||j    krht
StS(Nii( t getPackHeadttypeRtatInnert    getLengthRRtReadBYTEt    getBufferRtTrue(RtpacktposR ((s%.\\ServersRoute\LogicProcessThread.pyt
canProcess'scCs|jj|ƒdS(N(Rtput(RR&((s%.\\ServersRoute\LogicProcessThread.pyt requestPush6scCs/y|jjƒ}Wntjk
r*dSX|S(N(Rt
get_nowaitRtEmptytNone(RR&((s%.\\ServersRoute\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%.\\ServersRoute\LogicProcessThread.pytonInnerServerPack@s4   *1          cCs:t|_tj|ƒtjd|jƒ|jfƒdS(NsThread %s(%s) start...(RRRtstartRtinfotgetNametident(R((s%.\\ServersRoute\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%.\\ServersRoute\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%.\\ServersRoute\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%.\\ServersRoute\LogicProcessThread.pyR<„s  c    
Csãtj rqtjrqtjƒ}t|ƒ|_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|ƒ}|sKt 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%.\\ServersRoute\LogicProcessThread.pyt__SendMergeMsg sF          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ƒ}|jtjƒrš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_GMCMDMgrtAddPairtOrderIdRRRVRWRXtContainsRYRZR[R\R]RiR9R R:t ERROR_NO_172RNROR_R`(RR&t GmToolServerRRR|R5RaRb((s%.\\ServersRoute\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%.\\ServersRoute\LogicProcessThread.pyR;s( "     cCsVtjƒ}|jddƒ}d}d}|j|||tjtjtj|ƒdS(Nt RouteServeriiÿÿÿÿ(    R RktgetClientSessionIDByNameR3Rt atWorldLogicRtstRouteR‰(RtbufRRŠR‹RŒ((s%.\\ServersRoute\LogicProcessThread.pyR^&s  (t__name__t
__module__RR(R*R.R>R?RDRSR<R`R:R;R^(((s%.\\ServersRoute\LogicProcessThread.pyRs                                         6    -    #(#t    threadingRRttimeRtDBCommonRRRRtCommonRRtProtocolRR    R
R t
__import__RYtNetR RNtGMToolLogicProcessR RRotjsontcPickletConfigRRgt GetGMOrderMgrRR(((s%.\\ServersRoute\LogicProcessThread.pyt<module>s  ""