Administrator
2025-06-11 01696a5d8c2c3cf3062aa6a8ccbf123547c2dbf0
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
B
¾@cOã@sddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z e      d¡Zdd„Zdd„Zdd„Zdd    „Zd
d „Zd d „Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zd d!„Zd"d#„Zd$d%„Z d&d'„Z!e"d(kre#e d)ƒƒdS)*éNcCsÄy”| ¡‚}d|›d|›d|d›d|d›d|d›d|d›d|d    ›d|d
›d|d ›d |d ›d}t|ƒ| |¡| ¡WdQRXWn*tk
r¾}z | ¡Wdd}~XYnXdS)Nzinsert into level2_data(day,code,time,price,num,limit_price,operate_type,cancel_time,cancel_time_unit, md5,create_time) values ('z','ÚtimeÚpricez',Únumú,Z
limitPriceÚ operateTypeÚ
cancelTimeÚcancelTimeUnitz,'Úmd5z',now()))ÚcursorÚprintÚexecuteÚcommitÚ    ExceptionÚrollback)ÚdayÚcodeÚitemÚconnr
ÚsqlÚe©rú"D:\workspace\trade\data_process.pyÚ_mysql_insert_datas
b
rc
CsvyF| ¡4}d |d|d¡}t|ƒ| |¡| ¡WdQRXWn*tk
rp}z | ¡Wdd}~XYnXdS)Nz@update level2_data set re = {}, update_time=now() where md5='{}'Úrer    )r
Úformatr r r rr)rrr
rrrrrÚ_mysql_update_data"s
 
rcCst |¡}|S)N)ÚjsonÚloads)ÚstrÚdictrrrÚparse-s
r cCs
t |¡S)N)rÚdumps)Ú_dictrrrÚtoJson2sr#c
CsDyt |¡}|dStk
r>}zt |¡dSd}~XYnXdS)NÚtypeéÿÿÿÿ)rrrÚloggingZ    exception)rrrrrrÚ    parseType6s 
 
r'cCst |¡}|d}|S)NÚdata)rr)rrr(rrrÚ parseGPCode?s
r)cCs&t |¡}|d}|dk    r|SgSdS)Nr()rr)rr"r(rrrÚ    parseListEs
 
r*cCst |¡}|d}|S)Nr()rr)rr"r(rrrÚ    parseDataNs
r+cCs*t |¡}|d}|d}|d}||fS)Nr(r)rr)rrr(rZ
trade_datarrrÚparseL2TradeQueueDataTs
 
r,cCspt |¡}t t t|ƒ¡t d¡¡}t t t|ƒ¡t d¡¡}|t t|ƒ¡krd|krlnndSdS)Nz1.1z0.9TF)Úgpcode_managerZ get_price_preÚtoolZto_priceÚdecimalÚDecimalr)rrZ price_closeZ    max_priceZ    min_pricerrrÚis_same_code_with_price\s 
"r1cCs.t ¡}t |¡}d |¡}| |d|¡dS)Nztrade-queue-{}é)Ú__redisManagerÚgetRedisrr!rÚsetex)rr(ÚredisÚdata_strÚkeyrrrÚsaveL2TradeQueueDatags
 
r9cCs>t ¡}d |¡}| |¡}|dks0t|ƒdkr4dSt |¡S)Nztrade-queue-{}r)r3r4rÚgetÚlenrr)rr6r8r7rrrÚgetL2TradeQueueDataps 
 
r<cCs|g}tƒ}x|D]}| |d¡qWx|D]}| d|i¡q,Wt dd|i¡}d}x|D]}|d}Pq\Wtd|ƒ|S)NrZ
first_codez ths-industryz$orÚ_idu!最终的二级行业名称为:)ÚsetÚaddÚappendÚ
mongo_dataÚfindr )ÚdatasZorsZcodesr(rÚresultZ_fnameÚarrrÚ _getIndustryys
 
 
 
rFcCs†x€|D]x}t|ƒ}g}xZ|D]R}d|di}||d<|d|d<|d|d<ttt ¡dƒƒ|d<| |¡qWt d|¡qWdS)    Nr=rZsecond_industryÚzyltgbÚ zyltgb_unitièÚ update_timezths-industry-codes)rFÚintÚroundÚtrr@rAÚsave)Ú    datasListrCZ industry_nameÚ_listr(r"rrrÚsaveIndustryCode‹s
 
   rPcCsfg}xP|D]H}|d|d|dttt ¡dƒƒdœ}t|dƒdkr
| |¡q
Wt d|¡dS)NrrGrHiè)r=rGrHrIrzths-zylt)rJrKrLrÚfloatr@rArM)rNrOr(r"rrrÚ
saveZYLTSZœs
rRcCs,|dkr dSt ¡}| d |¡d|¡dS)Nrzclient-active-{}é
)r3r4r5r)Ú    client_idÚhostr6rrrÚsaveClientActive§srVcCsZt ¡}| d¡}g}x$|D]}| d¡d}| |¡qWt ¡}tt|ƒ     t|ƒ¡ƒS)Nzclient-active-*zclient-active-é)
r3r4ÚkeysÚsplitr@Ú    authorityÚget_l2_clientsÚlistr>Ú intersection)r6rXZ
client_idsÚkr=Z
l2_clientsrrrÚgetValidL2Clients®s
 
r_cCst ¡}| d |¡¡S)Nzclient-active-{})r3r4r:r)rTr6rrrÚgetActiveClientIPºsr`cCsbt ¡}xT|D]L}d |¡}| |t ¡||d¡d |¡}| |t ¡||d¡qWdS)Nz volumn-max-{}Z
max_volumnzvolumn-latest-{}Z latest_volumn)r3r4rr5r.Z
get_expire)rCr6r8r^rrrÚsaveCodeVolumnÀs 
 
 
raÚ__main__é)$r/rr&rrLÚrandomÚdatetimerZZmysqlÚ redis_managerr-rAr.Ú RedisManagerr3rrr r#r'r)r*r+r,r1r9r<rFrPrRrVr_r`raÚ__name__r rrrrÚ<module>sB