xdh
2019-02-21 92eee67f85cbd29feb1287ae5a15ad0c787e95cb
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
F/\c@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(cCs_tj|d|ƒ||_tjƒ|_t|_tjƒ|_    d|_
t j f|_ dS(Ntnamei(Rt__init__t_LogicProcessThread__serverObjtQueuet!_LogicProcessThread__requestQueuetFalset _LogicProcessThread__elegantExittMergeProxyClientMgrtgetMergeProxyClientMgrt#_LogicProcessThread__validClientMgrt*_LogicProcessThread__lastHeartbeatProcTickRt
atMergeSyst_LogicProcessThread__type(tselft
threadNamet    serverObj((sU.\\TCode\TeamServer\Server4\Servers\PyMongoDataServer\src\MergeServer_LogicProcess.pyR s            cCs|jj|ƒdS(N(Rt
put_nowait(Rtpack((sU.\\TCode\TeamServer\Server4\Servers\PyMongoDataServer\src\MergeServer_LogicProcess.pyt requestPush%scCs4y|jjƒ}Wntjk
r/d}nX|S(N(Rt
get_nowaitRtEmptytNone(RR((sU.\\TCode\TeamServer\Server4\Servers\PyMongoDataServer\src\MergeServer_LogicProcess.pyt
requestPop(s
 
cCs:t|_tj|ƒtjd|jƒ|jfƒdS(NsThread %s(%s) start...(RRRtstartRtinfotgetNametident(R((sU.\\TCode\TeamServer\Server4\Servers\PyMongoDataServer\src\MergeServer_LogicProcess.pyR#/s     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((sU.\\TCode\TeamServer\Server4\Servers\PyMongoDataServer\src\MergeServer_LogicProcess.pytstop4s
     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((sU.\\TCode\TeamServer\Server4\Servers\PyMongoDataServer\src\MergeServer_LogicProcess.pytrun;s2    
          
     ( "      cCs$|j|ƒr |j|ƒtStS(N(t
canProcessRR'R(RR((sU.\\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    GetLengthRR1t ERROR_NO_47R/RRtReadDatat getProcFunctCmdtSubCmdRt getPackPooltfreeR'(RRtbuftHeadR6tpostprocFunc((sU.\\TCode\TeamServer\Server4\Servers\PyMongoDataServer\src\MergeServer_LogicProcess.pyR-es  " 
cCs6yt|d||fƒ}Wntk
r1dSX|S(Nsproc_0x%02X_0x%02X(tgetattrtAttributeErrorR!(RtcmdtsubCmdRH((sU.\\TCode\TeamServer\Server4\Servers\PyMongoDataServer\src\MergeServer_LogicProcess.pyR@ws
 cCs)|jj|ddtjdddƒdS(Nit(RtpackSendBySessionIDRt atDisconnect(Rt    sessionID((sU.\\TCode\TeamServer\Server4\Servers\PyMongoDataServer\src\MergeServer_LogicProcess.pytdisconnectClientBySessionIDsc
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
ttagPLHeartbeatRRNRPRRt    GetBuffertcheckHeartbeattFindClientBySessionIDRRQRR$(Rt procIntervaltnowTimet
clientListtclienttsendPackt    netClient((sU.\\TCode\TeamServer\Server4\Servers\PyMongoDataServer\src\MergeServer_LogicProcess.pyR*…s.               
 !     cCs |jƒj|jkrtStS(N(t getPackHeadttypeRRR'(RR((sU.\\TCode\TeamServer\Server4\Servers\PyMongoDataServer\src\MergeServer_LogicProcess.pyR8©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    loginPacktstuffRgtmd5Objtresult((sU.\\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ƒ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!isClient %s login...( R:R<R    ttagLPLoginPackRRfRgRRhRiR?RoR
ttagPLLoginResultRttResulttErrMsgt    ErrMsgLenRRNt getSessionIDRRWR$RbtGroupIDReRYR.RQRt updateClient(    RRRERGtlengthtrecvPackRgR^R]((sU.\\TCode\TeamServer\Server4\Servers\PyMongoDataServer\src\MergeServer_LogicProcess.pytproc_0x01_0x01¿s6               1#    1cCsFtjd|jƒƒ|jj|jƒƒ}|s9dSt|_dS(NsClient logout!sessionID = %s(RR$RzRtfindClientBySessionIDRRS(RRt validClient((sU.\\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(RzRRhRR€trefreshHeartbeat(RRRPR]((sU.\\TCode\TeamServer\Server4\Servers\PyMongoDataServer\src\MergeServer_LogicProcess.pytproc_0x01_0x03ìs  (t__name__t
__module__R RR"R#R)R7R9R-R@RQR*R8RtRR‚R„(((sU.\\TCode\TeamServer\Server4\Servers\PyMongoDataServer\src\MergeServer_LogicProcess.pyR s     
                    $                    $            &    (t__doc__t    threadingRRR3RRtinspectRjtCommonRRtDBCommonRRRtProtocolRR    R
Rt
__import__R+R (((sU.\\TCode\TeamServer\Server4\Servers\PyMongoDataServer\src\MergeServer_LogicProcess.pyt<module> s