gwj
2026-01-13 afd80098563593477fc6f27165f4f4c915520403
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
ÚÜ/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( cCstj|ddƒ||_tjtjtjtjf|_t    j    ƒ|_
t |_ d|_ tjtjƒ}|jƒ|_|jjƒdS(NtnameRiÿÿÿÿ(Rt__init__t_LogicProcessThread__serverRtlsdDataServerPreparedAsktgstGMToolCommandtgstGMToolCommandResulttgstCrossServerToServerPackt'_LogicProcessThread__processRequestTypetQueuet!_LogicProcessThread__requestQueuetFalset _LogicProcessThread__elegantExitt&_LogicProcessThread__battleServerIndexRtGetServerDictByTheGroupNammetserverType_Battletkeyst'_LogicProcessThread__battleServerIDListtsort(tselft    serverObjtserverIDMapDict((s".\н¨Îļþ¼Ð\LogicProcessThread.pyRs            cCsl|jƒjtjkr1|jƒdkr1tSnd}tj|jƒ|ƒ\}}||j    krht
StS(Nii( t getPackHeadttypeRtatInnert    getLengthRRtReadBYTEt    getBufferRtTrue(R#tpacktposR'((s".\н¨Îļþ¼Ð\LogicProcessThread.pyt
canProcess+scCs|jj|ƒdS(N(Rtput(R#R-((s".\н¨Îļþ¼Ð\LogicProcessThread.pyt requestPush:scCs/y|jjƒ}Wntjk
r*dSX|S(N(Rt
get_nowaitRtEmptytNone(R#R-((s".\н¨Îļþ¼Ð\LogicProcessThread.pytrequestPopNoWait=s
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 getSessionIDR&t    sessionIDt    poolIndexR't
srcSvrTypet
dstSvrTypet    GetBufferR,RtOnGMToolCommandRtOnGMToolCommandResultRtOnCrossServerToServerPackR(R#R-R.R'tsendPack((s".\н¨Îļþ¼Ð\LogicProcessThread.pytonInnerServerPackDs4   *1          cCs:t|_tj|ƒtjd|jƒ|jfƒdS(NsThread %s(%s) start...(RRRtstartRtinfotgetNametident(R#((s".\н¨Îļþ¼Ð\LogicProcessThread.pyRFbs     cCsXtjd|jƒƒt|_x|jƒr<tdƒq#Wtjd|jƒƒdS(NsStopping thread %s...gš™™™™™¹?sThread %s stop ok!(RRGRHR,RtisAliveR(R#((s".\н¨Îļþ¼Ð\LogicProcessThread.pytstopgs
    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,R5R4RtGetStattLogicProcessCountR&R'RR(RERt getPackPooltfreeRtwarningt outputStringt    ExceptionRt    formatMsgt ERROR_NO_28t    tracebackt
format_exc(R#R-tpackTypetetmsg((s".\н¨Îļþ¼Ð\LogicProcessThread.pytrunns(          ( " cCs‰tjƒ}|j|jƒƒ|jtjkrÚ|jsKtj    dƒdS|j
d7_
|j
t |jƒkr~d|_
n|j|j
}t |gƒ|_ t |j ƒ|_tjd|ƒ|j|jƒƒdStj|j |jƒ}tj|krOt |tjƒ|_ t |j ƒ|_|j|jƒƒ|jtjƒnt |ƒdkredS|j|||ƒtjdƒdS(Ns±¾»ú×ÓûÓÐÅäÖÃÕ½¶·µØÍ¼iis recvPack battleReq toServerID=%sRC(R ttagLPStringDatatReadDataR+tDirTypeRtdirType_BattleR!RRRtlentstrt
ServerListt    ServerLenR6t sendMapStringR@RtFilterServerListtDBConfigt    GroupNametpopt!_LogicProcessThread__SendMergeMsg(R#R-trecvPackt
toServerIDtserverGroupDic((s".\н¨Îļþ¼Ð\LogicProcessThread.pyRCˆs4        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(#RetIsMsgFowardHubtMsgFowardHubIPtServerRouteClienttGetServersRouteChildR`RaR_Rbt    setBufferR@tSendPackRR6R t getServerMgrt    GetServerRt GetAllServerR]t    iteritemsRfRctMergeProxyClientMgrtgetMergeProxyClientMgrtfindClientByCompoundKeyR:R<R&R=RR(R>R?R+(    R#R-RiRktserverRouteClientR$t    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 RtRuR4t GetClientCntRRSt ERROR_NO_173Rt DeployErrorRtIsDebugtbinasciiR6tb2a_hexR+R;R    t tagGMCommandR\t
g_GMCMDMgrtAddPairtOrderIdRRRdRaR]ReRfR`R_RbRrR@R RAt ERROR_NO_172RURVRgRh(R#R-t GmToolServerRYR…R<RiRk((s".\н¨Îļþ¼Ð\LogicProcessThread.pyRAê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 RBRRSR‹RURVRRˆtPopPairRŠRGRPR RtR:RR(RtstGMToolt stCenterGateR@(R#R-RsRYtsendViaSessionIDt    SessionIDt    PoolIndext    ServerMgr((s".\н¨Îļþ¼Ð\LogicProcessThread.pyRBs( "     cCsVtjƒ}|jddƒ}d}d}|j|||tjtjtj|ƒdS(Nt RouteServeriiÿÿÿÿ(    R RttgetClientSessionIDByNameR:Rt atWorldLogicRtstRouteR‘(R#tbufR•R’R“R”((s".\н¨Îļþ¼Ð\LogicProcessThread.pyRc:s  (t__name__t
__module__RR/R1R5RERFRKRZRCRhRARBRc(((s".\н¨Îļþ¼Ð\LogicProcessThread.pyRs                                    *    8    -    #(#t    threadingRRttimeRtDBCommonRRRRtCommonRRtProtocolRR    R
R t
__import__RetNetR RUtGMToolLogicProcessR RRxtjsontcPickletConfigRRpt GetGMOrderMgrRˆR(((s".\н¨Îļþ¼Ð\LogicProcessThread.pyt<module>s  ""