Administrator
6 天以前 abd510d66074ac640555c241b6343a53cca8f070
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
85
86
87
88
89
90
91
92
93
94
B
˜c31ã
@s4ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl mZmZmZmZGdd„dejƒZGdd„dejeƒZGdd„dejƒZd    d
„Zd d „Zd d„Zdd„Zdd„Zedkr0yedƒZeeƒWn0e k
r.Z!zee"e!ƒƒWddZ![!XYnXdS)éN)Úlogger_l2_errorÚlogger_l2_processÚ logger_deviceÚlogger_trade_delegatec@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 rrrrrsrc@s eZdZdS)ÚMyThreadingTCPServerN)rrrrrrrrsrcsDeZdZiZiZiZdZ‡fdd„Z‡fdd„Z‡fdd„Z    ‡Z
S)ÚMyBaseRequestHandleNcstƒ ¡tj ¡|_dS)N)ÚsuperÚsetupÚl2_code_operateÚ L2CodeOperateÚ get_instanceÚ l2CodeOperate)r )Ú    __class__rrr#s
zMyBaseRequestHandle.setupc sž|jd}tƒ ¡|j}x|| d¡}t|ƒdkr6P| ¡}t|ƒdkrt |¡}d}|dkrFyÐt    t
 
¡dƒ}t   |¡\}}    }
} } t  | ¡\} }| dk    r2|dk    r2|    t| ƒkr2|
t|ƒkr2z0y$t  |    |
¡}|| krxd |    |
| ¡}||jks t    t
 
¡dƒ|j|dkrÖ|j |    |
d¡t    t
 
¡dƒ|j|<|dkrTd}t ¡rÖ|j t|    ƒt|
ƒ|¡n^d |    |
¡}||jks°t    t
 
¡dƒ|j|dkrÖt    t
 
¡dƒ|j|<|j |    |
d    ¡t  | ¡rît  | | ¡Wnt jk
r˜}z„| ¡t jjkrˆd |    |
| ¡}||jksTt    t
 
¡dƒ|j|d
krˆt  d | |j!¡t" #¡ $| ¡t    t
 
¡dƒ|j|<Wdd}~XYn`t%k
rö}z@t&d t'|ƒƒt( )|¡t *d  t'|ƒ¡¡t *d |¡¡Wdd}~XYnXWdt    t
 
¡dƒ}||dkr0t+ ,d | ||¡¡XWn YnXnB|dkr–y,t -|¡\} }t  | ¡rzt .|| |¡Wnt&d ƒYnXnò|d    krt /|¡}t 0|¡g}x|D]}| 1|d¡q¾Wt  2|¡|j3j4 5t6 7ddi¡¡t8ƒn†|dkr$t /|¡}t  9|¡nd|dkr„t :|¡}yt; <|¡Wn.t%k
rt}zt( )|¡Wdd}~XYnXt; =|¡n|dkrt :|¡}|j>|kr´||_>t? ,|¡yt; @|¡Wn.t%k
rð}zt( )|¡Wdd}~XYnXt; A|¡nˆ|dkr"t :|¡}t B|¡nf|dkrVt C|¡} | d}    | d}t; D|    |¡n2|dkræt E|¡d}y<tF G|d|d¡\}}t Hdt|ƒt6 I|¡d œd!œ¡}Wn8t%k
râ}zt Hd    t'|ƒd"œ¡}Wdd}~XYnXn¢|dkr@t E|¡d}|dk    rˆt&d#t|ƒƒxp|D]}tJ K|dtL|d$ƒ¡qWnH|d%krˆt E|¡d}|d}tM ,d& |t6 7|¡¡¡t Nt|ƒ|¡| 5| O¡¡qWdS)'NriÚOKièz{}-{}-{}iÐÚz{}-{}éi'ucode-{} l2单价错误:{}u异常u 出错:{}u 内容:{}é(ul2处理时间:{}-{}é
ÚcodeÚtypeÚresubéééééÚclientÚmoneyéÚdataÚaccountÚpwd)r)Z
authoritys)r!r,)r!Úmsgu 现价数量Úpriceéu({})客户端信息:{})PÚclient_addressrÚhandleÚrequestÚrecvÚlenÚdecodeÚ data_processÚ    parseTypeÚroundÚtimeÚl2_data_managerZ parseL2DataÚgpcode_managerÚget_listen_code_posÚintÚget_listen_code_by_posÚformatÚreset_code_dictrZset_operate_code_stateÚtoolÚ is_trade_timeZrepaire_operateÚset_operate_code_state_dictÚ    is_listenZ process_dataZL2DataExceptionÚget_codeZCODE_PRICE_ERRORÚl2_data_error_dictrÚwarningr/rrZremove_l2_listenÚ    ExceptionÚprintÚstrÚloggingÚ    exceptionÚerrorrÚinfoÚparseL2TradeQueueDataZ
saveL2DataÚ parseGPCodeÚ
saveZYLTSZÚappendÚ set_gp_listÚserverrÚsendÚjsonÚdumpsÚsync_target_codes_to_thsÚset_limit_up_listÚ    parseListÚ trade_managerZprocess_trade_success_dataZsave_trade_success_dataÚlast_trade_delegate_datarZprocess_trade_delegate_dataZsave_trade_delegate_dataÚsaveIndustryCodeÚ    parseDataZset_available_moneyÚparseÚ    authorityÚloginÚtoJsonÚloadsÚjuejinÚ accpt_priceÚfloatrÚsaveClientActiveÚencode)r ÚhostÚskr,Ú_strr"Z
return_strZ _MyBaseRequestHandle__start_timeÚdayr)Úchannelr!ÚdatasZcidÚpidÚcode_ÚkeyÚlÚeZ_MyBaseRequestHandle__end_timeZsetDataÚ    data_listÚ    code_listZcodeListZdataListr*Ú    client_idZ _authoritysÚitem)rrrr3)sì
 
    
 
 
0 
 
 
  &
&
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 (
 
 
 
zMyBaseRequestHandle.handlecstƒ ¡dS)N)rÚfinish)r )rrrrzÐszMyBaseRequestHandle.finish) rrrrBrErHr^rr3rzÚ __classcell__rr)rrrs  (rcCsŽt |¡}td||ƒ|dks*t|ƒdkr2tdƒ‚t tjtj¡}| |df¡z.|     t
  |¡  ¡¡|  d¡}| ¡ ¡}|S| ¡XdS)NÚipru客户端IP为空i.#i)r8ÚgetActiveClientIPrKr6rJÚsocketÚAF_INETÚ SOCK_STREAMÚconnectrWrXrYrjr5r7ÚlstripÚclose)rxr,Ú_ipZ socketClientr5ÚresultrrrÚsend_msgÕs
 
 r†cCs\xVt ¡}x6|D].}td|ƒyt|ddiƒWqYqXqWt ¡t d¡qWdS)Nu心跳ÚactionÚtestr&)rbÚget_l2_clientsrKr†rZcorrect_client_codesr;Úsleep)Úclientsr)rrrÚtest_client_serverçs
 
 
rŒcCsBt|ddiƒ}t |¡}|ddkr2t |d¡St|dƒ‚dS)Nr‡Z getEnvStater!rr,r/)r†rXrerJ)r)r…rrrÚget_client_env_stateös
 
 rcCs4t|ddiƒ}t |¡}|ddkr0t|dƒ‚dS)Nr‡Z    repairEnvr!rr/)r†rXrerJ)r)r…rrrÚrepair_client_envs
 rŽcCsFt ¡}g}x|D]}| |¡qWt d¡}t|dd|dœƒ}|S)Nzclient-industryrZsyncTargetCodes)r‡r,)r=Ú get_gp_listrTrbÚ_get_client_ids_by_ruler†)Úcodesrwr!r)r…rrrrZs
 
rZÚ__main__r%)#rXrMr    r~r;r8r=rbrfr<rCr]rÚlogrrrrr
rZThreadingMixInrZBaseRequestHandlerrr†rŒrrŽrZrr…rKrJrurLrrrrÚ<module>s89