unknown
2022-08-18 bc6204f30deb7518b6f4738e3c842598cd040545
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
B
Aêýb)ã@s&ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl m Z m Z mZGdd„dejƒZGdd„dejeƒZGdd„dejƒZd    d
„Zd d „Zed kr"dZe e¡\ZZedk    r"edk    r"e e¡Ze e¡Zde eƒee!eƒe!eƒdœdœZ"eee"ƒdS)éN)Úlogger_l2_errorÚlogger_l2_processÚ logger_devicec@seZdZddd„ZdS)Ú MyTCPServerTNcCs||_tjj||||ddS)N)Úbind_and_activate)ÚpipeÚ socketserverÚ    TCPServerÚ__init__)ÚselfÚserver_addressZRequestHandlerClassrr©r úD:\workspace\trade\server.pyr
szMyTCPServer.__init__)TN)Ú__name__Ú
__module__Ú __qualname__r
r r r rrsrc@s eZdZdS)ÚMyThreadingTCPServerN)rrrr r r rrsrcs@eZdZiZiZiZ‡fdd„Z‡fdd„Z‡fdd„Z‡Z    S)ÚMyBaseRequestHandlecstƒ ¡tj ¡|_dS)N)ÚsuperÚsetupÚl2_code_operateÚ L2CodeOperateÚ get_instanceÚ l2CodeOperate)r )Ú    __class__r rr s
zMyBaseRequestHandle.setupc sÄ|jd}tƒ ¡|j}x¢| d¡}t|ƒdkr6P| ¡}t|ƒdkrt |¡}d}|dkrèyrt    t
 
¡dƒ}t   |¡\}}    }
} } zyt  |    |
¡} | | kr.d |    |
| ¡}||jksàt    t
 
¡dƒ|j|dkrŒ|j |    |
d¡t    t
 
¡dƒ|j|<| dkrd} |j t|    ƒt|
ƒ| ¡n^d |    |
¡}||jksft    t
 
¡dƒ|j|dkrŒt    t
 
¡dƒ|j|<|j |    |
d    ¡t  | ¡r¤t  | | ¡Wnòt jk
r:}zr| ¡t jjkr*d |    |
| ¡}||jkst    t
 
¡dƒ|j|dkr*|j | ¡t    t
 
¡dƒ|j|<Wdd}~XYn`tk
r˜}z@td
t|ƒƒt  !|¡t" #d  t|ƒ¡¡t" #d  |¡¡Wdd}~XYnXWdt    t
 
¡dƒ}||d krÒt$ %d | ||¡¡XWn YnXnÆ|dkr8y,t &|¡\} }t  | ¡rt '|| |¡Wntd
ƒYnXnv|d    kr”t (|¡}t )|¡g}x|D]}| *|d¡q`Wt  +|¡|j,j- .d¡n|dkr¶t (|¡}t  /|¡nø|dkrt 0|¡}yt1 2|¡Wn.tk
r}zt  !|¡Wdd}~XYnXt1 3|¡n˜|dkrvt 0|¡}yt1 4|¡Wn.tk
rf}zt  !|¡Wdd}~XYnXt1 5|¡n8|dkr˜t 0|¡}t 6|¡n|dkrÊt 7|¡} | d}    | d}t1 8|    |¡nä|dkrZt 9|¡d}y<t: ;|d|d¡\}}t <dt|ƒt= >|¡dœdœ¡}Wn8tk
rV}zt <d    t|ƒdœ¡}Wdd}~XYnXnT|d kr®t 9|¡d}|d}d!|krž|d!}t? %d" ||¡¡t @t|ƒ|¡| .| A¡¡qWdS)#NriÚOKièz{}-{}-{}iÐÚz{}-{}éu异常u 出错:{}u 内容:{}é(ul2处理时间:{}-{}é
ÚcodeÚresubéééééÚclientÚmoneyéÚdataÚaccountÚpwd)r'Z
authoritys)r r*)r ÚmsgéZmemeryu({})内存使用率:{})BÚclient_addressrÚhandleÚrequestÚrecvÚlenÚdecodeÚ data_processÚ    parseTypeÚroundÚtimeÚl2_data_managerÚ parseL2DataÚgpcode_managerÚget_listen_code_by_posÚformatÚreset_code_dictrÚset_operate_code_stateÚrepaire_operateÚintÚset_operate_code_state_dictÚ    is_listenÚ process_dataÚL2DataExceptionÚget_codeÚCODE_PRICE_ERRORÚl2_data_error_dictÚrepaire_l2_dataÚ    ExceptionÚprintÚstrÚloggingÚ    exceptionrÚerrorrÚinfoÚparseL2TradeQueueDataÚ
saveL2DataÚ parseGPCodeÚ
saveZYLTSZÚappendÚ set_gp_listÚserverrÚsendÚset_limit_up_listÚ    parseListÚ trade_managerÚprocess_trade_success_dataÚsave_trade_success_dataÚprocess_trade_delegate_dataÚsave_trade_delegate_dataÚsaveIndustryCodeÚ    parseDataÚset_available_moneyÚparseÚ    authorityÚloginÚtoJsonÚjsonÚloadsrÚsaveClientActiveÚencode)r ÚhostÚskr*Ú_strÚtypeZ
return_strZ _MyBaseRequestHandle__start_timeÚdayr'Úchannelr ÚdatasÚcode_ÚkeyÚlÚeZ_MyBaseRequestHandle__end_timeZsetDataÚ    data_listZ    code_listZcodeListZdataListr(Ú    client_idZ _authoritysÚmem)rr rr0&sÔ
 
    
 
 
 
 
   &
&
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 (
 
zMyBaseRequestHandle.handlecstƒ ¡dS)N)rÚfinish)r )rr rry¿szMyBaseRequestHandle.finish)
rrrr>rBrHrr0ryÚ __classcell__r r )rrrs  rcCs‚t |¡}|dkst|ƒdkr&tdƒ‚t tjtj¡}| |df¡z.| t     
|¡  ¡¡|  d¡}|  ¡ ¡}|S| ¡XdS)Nru客户端IP为空i.#i)r5ÚgetActiveClientIPr3rJÚsocketÚAF_INETÚ SOCK_STREAMÚconnectrXrgÚdumpsrjr2r4ÚlstripÚclose)rwr*Ú_ipZ socketClientr2Úresultr r rÚsend_msgÄs
 
 r…cCsTxNt ¡}x6|D].}td|ƒyt|ddiƒWqYqXqWt d¡qWdS)Nu心跳ÚactionÚtestr$)rdÚget_l2_clientsrKr…r8Úsleep)Úclientsr'r r rÚtest_client_serverÕs
 
 
r‹Ú__main__Z000503Ú repairL2Data)Úindexr Ú    min_priceÚ    max_price)r†r*)#rgrMrr|r8r5r;rdr9r[rÚlogrrrr    rZThreadingMixInrZBaseRequestHandlerrr…r‹rr Úget_listen_code_posrwÚposÚget_limit_up_pricerÚget_limit_down_pricerrAÚfloatr*r r r rÚ<module>s8*