hzr
2018-08-09 3346f8aae7f8abbd4b27c4564cbb802e7e717cc9
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
6÷ÙTc@säddlmZddlZddlmZddlmZmZmZm    Z    ddl
m Z m Z ddl mZmZmZedƒZddlmZddlZdd    lmZmZejƒad
efd „ƒYZdS( iÿÿÿÿ(tThreadN(tsleep(t CommonDefineterrortStattSingletonObject(tCommFunctmylog(t
MMORPGPacktRecvPackProtocoltSendPackProtocolsConfig.DBConfig(t MongoDBServer(tProjSpecialProcesstGMToolCommandMgrtLogicProcessThreadcBsteZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z    d„Z
d    „Z d
„Z d „Z RS( cCs_tj|ddƒ||_tjtjtjtjtjf|_    t
j
ƒ|_ t |_ dS(NtnameR(Rt__init__t_LogicProcessThread__serverRtlsdDataServerPreparedAsktgstGMToolCommandtgstGMToolCommandResulttgstGMToolCmdLogicProcessRequesttgstBroadcastMergeClientt'_LogicProcessThread__processRequestTypetQueuet!_LogicProcessThread__requestQueuetFalset _LogicProcessThread__elegantExit(tselft    serverObj((s3.\server\db\PyMongoDataServer\LogicProcessThread.pyRs    cCsl|jƒjtjkr1|jƒdkr1tSnd}tj|jƒ|ƒ\}}||j    krht
StS(Nii( t getPackHeadttypeRtatInnert    getLengthRRtReadBYTEt    getBufferRtTrue(RtpacktposR((s3.\server\db\PyMongoDataServer\LogicProcessThread.pyt
canProcess!scCs|jj|ƒdS(N(Rtput(RR%((s3.\server\db\PyMongoDataServer\LogicProcessThread.pyt requestPush0scCs/y|jjƒ}Wntjk
r*dSX|S(N(Rt
get_nowaitRtEmptytNone(RR%((s3.\server\db\PyMongoDataServer\LogicProcessThread.pytrequestPopNoWait3s
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 ƒtStS( 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!(RR"R#RRRtinfoR
ttagDataServerInitOKtdgDataServerPrepareOKtTypeRtpackSendBySessionIDt getSessionIDRt    sessionIDt    poolIndexRt
srcSvrTypet
dstSvrTypet    GetBufferR$RtOnGMToolCommandRtOnGMToolCommandResultRtOnGMToolCmdLogicProcessRequestRtOnBroadcastMergeClientR(RR%R&RtsendPack((s3.\server\db\PyMongoDataServer\LogicProcessThread.pytonInnerServerPack:s>   *1             cCs:t|_tj|ƒtjd|jƒ|jfƒdS(NsThread %s(%s) start...(RRRtstartRR.tgetNametident(R((s3.\server\db\PyMongoDataServer\LogicProcessThread.pyR?\s     cCsXtjd|jƒƒt|_x|jƒr<tdƒq#Wtjd|jƒƒdS(NsStopping thread %s...gš™™™™™¹?sThread %s stop ok!(RR.R@R$RtisAliveR(R((s3.\server\db\PyMongoDataServer\LogicProcessThread.pytstopas
    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,RRRtGetStattLogicProcessCountRRRR R>Rt getPackPooltfreeRtwarningt outputStringt    ExceptionRt    formatMsgt ERROR_NO_28t    tracebackt
format_exc(RR%tpackTypetetmsg((s3.\server\db\PyMongoDataServer\LogicProcessThread.pytrunhs4              
         ( " cCstjƒjdƒ}|sdStjƒ}|j|jƒdƒtj|_    |j
|j ƒƒ|j dƒtj |jƒ_|j|ƒdS(NtMergei(R t getServerMgrt    GetServerR    ttagGDBroadcastMergeClienttReadDataR#RtdgBroadcastMergeClientR1t    setBufferR8t setSessionIDt atMergeLogicRRtpushSend(RR%Rt broadcastPack((s3.\server\db\PyMongoDataServer\LogicProcessThread.pyR<‡s   cCs$tjƒjdƒ}|dkr%dS|jƒdkr`tjdtjdƒ}tj    |ƒdSddl
}tj d|j |j ƒƒƒ|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 RVRWR,t GetClientCntRRMt ERROR_NO_173Rt DeployErrortbinasciiR.tb2a_hexR#R3R    t tagGMCommandRYt
g_GMCMDMgrtAddPairtOrderIdRR R9t ERROR_NO_172RORP(RR%t GmToolServerRSRdR4trecvPack((s3.\server\db\PyMongoDataServer\LogicProcessThread.pyR9“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
ttagGMCommandResultRYR#R R:RRMRjRORPRRgtPopPairRiR.RJR RVR2RR RtstGMTooltstDataR8(RR%tSendPackRStsendViaSessionIDt    SessionIDt    PoolIndext    ServerMgr((s3.\server\db\PyMongoDataServer\LogicProcessThread.pyR:°s( "     cCsNytj|ƒWn6tjdtjdtjƒƒ}tj|ƒnXdS(NRs\LogicProcessThread::OnGMToolCmdLogicProcessRequest Catch a unexpetcted exception, error = %s(R R;RRMRjRORPR(RR%RS((s3.\server\db\PyMongoDataServer\LogicProcessThread.pyR;Ïs "(t__name__t
__module__RR'R)R-R>R?RCRTR<R9R:R;(((s3.\server\db\PyMongoDataServer\LogicProcessThread.pyRs                     "                         (t    threadingRRttimeRtDBCommonRRRRtCommonRRtProtocolRR    R
t
__import__RDtNetR ROtGMToolLogicProcessR R t GetGMOrderMgrRgR(((s3.\server\db\PyMongoDataServer\LogicProcessThread.pyt<module>s "