hwj35
13 小时以前 8326668cd16a084cd30d82e844284d1beb6cbe0f
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
42
43
44
45
46
47
48
49
IxÙfc@sÜdZddlmZddlZddlZddlmZmZddlZddlZddl    m
Z
m Z ddl m Z mZmZddlmZmZmZddlZedƒZd    efd
„ƒYZdS( s:
    ¿ç·þÂß¼­´¦ÀíÄ£¿é
        dispatch ¹©·â°ü·Ö·¢Âß¼­µ÷ÓÃ
iÿÿÿÿ(tThreadN(tsleepttime(tmylogtCommFunc(tSingletonObjectt CommonDefineterror(t PackCommonDeftMergeServerRecvProtocoltMergeServerSendProtocolsConfig.DBConfigtLogicProcessThreadcBs˜eZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z    d„Z
d    „Z d
„Z d „Z d „Zd „Zd„Zd„ZRS(cCsqtj|d|ƒ||_tjƒ|_t|_tjƒ|_    |j    j
|j_ d|_ t jf|_dS(Ntnamei(Rt__init__t_LogicProcessThread__serverObjtQueuet!_LogicProcessThread__requestQueuetFalset _LogicProcessThread__elegantExittMergeProxyClientMgrtgetMergeProxyClientMgrt#_LogicProcessThread__validClientMgrt    delClienttonClientDisconnectExt*_LogicProcessThread__lastHeartbeatProcTickRt
atMergeSyst_LogicProcessThread__type(tselft
threadNamet    serverObj((s].\db»º´æ³Ø\TCode\TeamServer\Server4\Servers\PyMongoDataServer\src\MergeServer_LogicProcess.pyR s            cCs|jj|ƒdS(N(Rt
put_nowait(Rtpack((s].\db»º´æ³Ø\TCode\TeamServer\Server4\Servers\PyMongoDataServer\src\MergeServer_LogicProcess.pyt requestPush&scCs4y|jjƒ}Wntjk
r/d}nX|S(N(Rt
get_nowaitRtEmptytNone(RR((s].\db»º´æ³Ø\TCode\TeamServer\Server4\Servers\PyMongoDataServer\src\MergeServer_LogicProcess.pyt
requestPop)s
 
cCs:t|_tj|ƒtjd|jƒ|jfƒdS(NsThread %s(%s) start...(RRRtstartRtinfotgetNametident(R((s].\db»º´æ³Ø\TCode\TeamServer\Server4\Servers\PyMongoDataServer\src\MergeServer_LogicProcess.pyR%0s     cCsjtjd|jƒ|jfƒt|_x|jƒrEtdƒq,Wtjd|jƒ|jfƒdS(NsStopping thread %s(%s)gš™™™™™¹?sThread %s(%s) stop ok!(RR&R'R(tTrueRtisAliveR(R((s].\db»º´æ³Ø\TCode\TeamServer\Server4\Servers\PyMongoDataServer\src\MergeServer_LogicProcess.pytstop5s
     cCsNxtry‹|jƒ|jƒ}tjrW|dkrg|jrDPntdƒwqgn|dkrgPn|j|ƒr|wnt    j
d|j ƒƒWqt k
rá}t jdt jd|tjƒfƒ}t    j |ƒqqt jdt jdtjƒƒ}t    j |ƒqqXqWtjrJt    jd|jƒ|jfƒndS(Ngš™™™™™¹?sPack %s not processed!Rs"Exception %s caught!traceback = %ss'Unknown exception caught!traceback = %ssThread %s(%s) exit!(R)tprocessHeartbeatR$tDBConfigtMultiThreadingR#RRtprocessRequestRtwarningt outputStringt    ExceptionRt    formatMsgt ERROR_NO_28t    tracebackt
format_excR&R'R((RRtetmsg((s].\db»º´æ³Ø\TCode\TeamServer\Server4\Servers\PyMongoDataServer\src\MergeServer_LogicProcess.pytrun<s2    
          
     ( "      cCs$|j|ƒr |j|ƒtStS(N(t
canProcessR R)R(RR((s].\db»º´æ³Ø\TCode\TeamServer\Server4\Servers\PyMongoDataServer\src\MergeServer_LogicProcess.pytdispatch`s cCs¾|jƒ}tjƒ}t|ƒ|jƒkrctjdtjd|jƒƒ}t    j|ƒt
Sd}|j ||ƒ}|j |j |jƒ}|rº||ƒtjƒj|ƒtSt
S(NRsPack %s error!i(t    getBufferRttagHeadtlent    GetLengthRR3t ERROR_NO_47R1RRtReadDatat getProcFunctCmdtSubCmdRt getPackPooltfreeR)(RRtbuftHeadR8tpostprocFunc((s].\db»º´æ³Ø\TCode\TeamServer\Server4\Servers\PyMongoDataServer\src\MergeServer_LogicProcess.pyR/fs  " 
cCs6yt|d||fƒ}Wntk
r1dSX|S(Nsproc_0x%02X_0x%02X(tgetattrtAttributeErrorR#(RtcmdtsubCmdRJ((s].\db»º´æ³Ø\TCode\TeamServer\Server4\Servers\PyMongoDataServer\src\MergeServer_LogicProcess.pyRBxs
 cCs)|jj|ddtjdddƒdS(Nit(RtpackSendBySessionIDRt atDisconnect(Rt    sessionID((s].\db»º´æ³Ø\TCode\TeamServer\Server4\Servers\PyMongoDataServer\src\MergeServer_LogicProcess.pytdisconnectClientBySessionID€sc
Cs9d}tƒ}|jrM||j|krM|j|krF||_qMdSn||_|jjƒ}xÍ|D]Å}|jsqln|jƒrÔ|jƒtjƒ}|j    j
|j ddt j dd|jƒƒn|jƒsl|j    j|j ƒ}|s
t|_qln|j|j ƒtjd|j ƒqlqlWdS(NiisKick client sessionID = %s(RRRt getClientListtisValidtshouldSendHeartbeattrefreshSendHeartbeatTickR
ttagPLHeartbeatRRPRRRRt    GetBuffertcheckHeartbeattFindClientBySessionIDRRSRR&(Rt procIntervaltnowTimet
clientListtclienttsendPackt    netClient((s].\db»º´æ³Ø\TCode\TeamServer\Server4\Servers\PyMongoDataServer\src\MergeServer_LogicProcess.pyR,†s.               
 !     cCs |jƒj|jkrtStS(N(t getPackHeadttypeRRR)(RR((s].\db»º´æ³Ø\TCode\TeamServer\Server4\Servers\PyMongoDataServer\src\MergeServer_LogicProcess.pyR:ªscCsÚ|jjtdƒƒ|jjtdƒƒ}tjƒrrddl}tjd|j    |jƒ|j|fƒnt
j ƒ}|j |ƒ|j ƒ}||jjtdƒƒkr¹tStjd||jƒfƒtS(Niiÿÿÿÿs+ClientGUID = %s, TimeStamp = %s, stuff = %ssresult = %s;pack = %s(t
ClientGUIDtstriptchrt    TimeStampRtIsDebugtbinasciiRtdebugtb2a_hextmd5tnewtupdatet    hexdigestt
VerifyCodeR)t OutputStringR(Rt    loginPacktstuffRitmd5Objtresult((s].\db»º´æ³Ø\TCode\TeamServer\Server4\Servers\PyMongoDataServer\src\MergeServer_LogicProcess.pyt LoginVerify±s.  ,   c
Cs&|jƒ}d}t|ƒ}tjƒ}tjƒr_ddl}tjd|j    |ƒƒn|j
|||ƒtjƒr˜tjd|j ƒƒnt j ƒ}|j|ƒs{d|_d|_t|jƒ|_|jj|jƒddtjdd|jƒƒtjd|j|j|jfƒ|jj|jƒƒ}|sdtjd|jƒƒdS|j|jƒƒdSd}    |jj|jƒƒ}|r¯|jd}    nd    |_|jj|jƒddtjdd|jƒƒtjd
|jƒ|jj |jƒ|j|j|    ƒdS( Niiÿÿÿÿsbuf = %ss recvPack = %ssInvalid client!sInvalid client:%s/%s %ss Client not found!sessionID = %s!ROisClient %s login...(!R<R>R    ttagLPLoginPackRRhRiRRjRkRARqR
ttagPLLoginResultRvtResulttErrMsgt    ErrMsgLenRRPt getSessionIDRRYR&RdtGroupIDRgR[R0RStaddrRt updateClient(
RRRGRItlengthtrecvPackRiR`R_tclientIP((s].\db»º´æ³Ø\TCode\TeamServer\Server4\Servers\PyMongoDataServer\src\MergeServer_LogicProcess.pytproc_0x01_0x01Às>               1#    1cCsFtjd|jƒƒ|jj|jƒƒ}|s9dSt|_dS(NsClient logout!sessionID = %s(RR&R|RtfindClientBySessionIDRRU(RRt validClient((s].\db»º´æ³Ø\TCode\TeamServer\Server4\Servers\PyMongoDataServer\src\MergeServer_LogicProcess.pytproc_0x01_0x02ìs
cCsT|jƒ}tjd|ƒ|jj|ƒ}|s9dStjdƒ|jƒdS(Ns$sessionID = %s refreshHeartbeat recvsproc_0x01_0x03, success(R|RRjRR„trefreshHeartbeat(RRRRR_((s].\db»º´æ³Ø\TCode\TeamServer\Server4\Servers\PyMongoDataServer\src\MergeServer_LogicProcess.pytproc_0x01_0x03ós  (t__name__t
__module__R R R$R%R+R9R;R/RBRSR,R:RvRƒR†Rˆ(((s].\db»º´æ³Ø\TCode\TeamServer\Server4\Servers\PyMongoDataServer\src\MergeServer_LogicProcess.pyR s                          $                    $            ,    (t__doc__t    threadingRRR5RRtinspectRltCommonRRtDBCommonRRRtProtocolRR    R
Rt
__import__R-R (((s].\db»º´æ³Ø\TCode\TeamServer\Server4\Servers\PyMongoDataServer\src\MergeServer_LogicProcess.pyt<module> s