admin
2 天以前 cc71c85009471c1dfce6cc4644267657c2a14263
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
B
     de7%ã@sÎdZddlZddlZddlZddlZddlZddlZddlmZddl    m
Z
m Z ddl m Z mZejZdd„edƒDƒZGd    d
„d
ƒZGd d „d ƒZed krÊx$edƒD]Ze dde  ¡d¡q¦We ¡dS)u
redis管理器
éN)Úasync_log_util)Úlogger_redis_debugÚ logger_system)ÚtoolÚmiddle_api_protocolc
Cs.g|]&}tjtdtdtd|ddd‘qS)ÚhostÚportÚpwdTé2)rrÚpasswordÚdbÚdecode_responsesZmax_connections)ÚredisZConnectionPoolÚconfig)Ú.0r ©rú4D:\workspace\trade_sell\db\redis_manager_delegate.pyú
<listcomp>sréc@s,eZdZedfdd„Zdd„Zdd„ZdS)    Ú RedisManagerr cCst||_||_dS)N)Ú pool_cachesÚpoolr )Úselfr rrrÚ__init__s
zRedisManager.__init__cCstj|jdS)N)Úconnection_pool)rÚRedisr)rrrrÚgetRedisszRedisManager.getRediscCs"tjtdtdtd|jddS)Nrrr    T)rrr r r )rrrr )rrrrÚgetRedisNoPoolszRedisManager.getRedisNoPoolN)Ú__name__Ú
__module__Ú __qualname__rrrrrrrrrsrc@s¾eZdZe ¡Zedd„ƒZedCdd„ƒZedd„ƒZ    edd    „ƒZ
edDd d „ƒZ edEd d„ƒZ edFdd„ƒZ edGdd„ƒZedHdd„ƒZedIdd„ƒZedJdd„ƒZedKdd„ƒZedLdd„ƒZedMdd„ƒZedNd d!„ƒZedOd"d#„ƒZedPd$d%„ƒZedQd&d'„ƒZedRd(d)„ƒZedSd*d+„ƒZedTd,d-„ƒZedUd.d/„ƒZedVd0d1„ƒZedWd2d3„ƒZedXd4d5„ƒZedYd6d7„ƒZ edZd8d9„ƒZ!ed:d;„ƒZ"ee#d<œd=d>„ƒZ$ed?d@„ƒZ%edAdB„ƒZ&dS)[Ú
RedisUtilscCst ¡}z|ƒSXdS)N)Útime)ÚclsÚ method_nameÚkeyZ lamada_methodZ_RedisUtils__start_timerrrÚexec'szRedisUtils.execNcCs4|||dœ}|dk    r||d<t |¡}t |¡}|S)N)r Úcmdr%Úargs)rZload_redis_cmdÚrequest)r#r r'r%r(ÚdataÚfdataÚresultrrrZ    __request0s
 
zRedisUtils.__requestcCsdg}xF|D]>}|d|d|ddœ}|ddk    r>|d|d<| |¡q
Wt |¡}t |¡}|S)Nréé)r r'r%ér()ÚappendrZload_redis_cmdsr))r#ZodatasZ_datasÚdr*r+ÚresultsrrrZ__batch__request>s
 
 
zRedisUtils.__batch__requestcCs |jjdS)Nr )rZconnection_kwargs)r#Úredis_rrrZ__get_dbNszRedisUtils.__get_dbTcsˆ dˆ‡‡‡fdd„¡S)NÚgetcsˆ ˆ ˆ¡dˆ¡S)Nr4)Ú_RedisUtils__requestÚ_RedisUtils__get_dbr)r#r%r3rrÚ<lambda>Tóz RedisUtils.get.<locals>.<lambda>)r&)r#r3r%Ú    auto_freer)r#r%r3rr4RszRedisUtils.getcsˆ dˆ‡‡‡fdd„¡S)NÚscardcsˆ ˆ ˆ¡dˆ¡S)Nr:)r5r6r)r#r%r3rrr7Xr8z"RedisUtils.scard.<locals>.<lambda>)r&)r#r3r%r9r)r#r%r3rr:VszRedisUtils.scardFcsˆ dˆ‡‡‡fdd„¡S)NÚdeletecsˆ ˆ ˆ¡dˆ¡S)Nr;)r5r6r)r#r%r3rrr7\r8z#RedisUtils.delete.<locals>.<lambda>)r&)r#r3r%r9Ú_asyncr)r#r%r3rr;ZszRedisUtils.deletecCs| |d|¡dS)Nr;)Úadd_async_task)r#r r%r9rrrÚ delete_async^szRedisUtils.delete_asynccs,t tdˆ›¡ˆ dˆ‡‡‡fdd„¡S)Nzkeys:Úkeyscsˆ ˆ ˆ¡dˆ¡S)Nr?)r5r6r)r#r%r3rrr7fr8z!RedisUtils.keys.<locals>.<lambda>)rÚinforr&)r#r3r%r9r)r#r%r3rr?cszRedisUtils.keyscsˆ dˆ‡‡‡‡fdd„¡S)NÚsetcsˆ ˆ ˆ¡dˆˆ¡S)NrA)r5r6r)r#r%r3Úvalrrr7jr8z RedisUtils.set.<locals>.<lambda>)r&)r#r3r%rBr9r)r#r%r3rBrrAhszRedisUtils.setcCs| |d||f¡dS)NrA)r=)r#r r%rBr9rrrÚ    set_asynclszRedisUtils.set_asyncc    sˆ dˆ‡‡‡‡‡fdd„¡S)NÚsetexcsˆ ˆ ˆ¡dˆˆˆg¡S)NrD)r5r6r)r#Úexpirer%r3rBrrr7sr8z"RedisUtils.setex.<locals>.<lambda>)r&)r#r3r%rErBr9r<r)r#rEr%r3rBrrDqszRedisUtils.setexcCs| |d|||f¡dS)NrD)r=)r#r r%rErBr9rrrÚ setex_asyncuszRedisUtils.setex_asynccsˆ dˆ‡‡‡‡fdd„¡S)NÚsetnxcsˆ ˆ ˆ¡dˆˆ¡S)NrG)r5r6r)r#r%r3rBrrr7|r8z"RedisUtils.setnx.<locals>.<lambda>)r&)r#r3r%rBr9r)r#r%r3rBrrGzszRedisUtils.setnxcsˆ dˆ‡‡‡‡fdd„¡S)NrEcsˆ ˆ ˆ¡dˆˆ¡S)NrE)r5r6r)r#rEr%r3rrr7€r8z#RedisUtils.expire.<locals>.<lambda>)r&)r#r3r%rEr9r)r#rEr%r3rrE~szRedisUtils.expirecCs| |d||f¡dS)NrE)r=)r#r r%rEr9rrrÚ expire_async‚szRedisUtils.expire_asynccsˆ dˆ‡‡‡‡fdd„¡S)NÚsaddcsˆ ˆ ˆ¡dˆˆ¡S)NrI)r5r6r)r#r%r3rBrrr7‰r8z!RedisUtils.sadd.<locals>.<lambda>)r&)r#r3r%rBr9r)r#r%r3rBrrI‡szRedisUtils.saddcCs| |d||f¡dS)NrI)r=)r#r r%rBr9rrrÚ
sadd_async‹szRedisUtils.sadd_asynccsˆ dˆ‡‡‡‡fdd„¡S)NÚ    sismembercsˆ ˆ ˆ¡dˆˆ¡S)NrK)r5r6r)r#r%r3rBrrr7’r8z&RedisUtils.sismember.<locals>.<lambda>)r&)r#r3r%rBr9r)r#r%r3rBrrKszRedisUtils.sismembercs2ˆ dˆ‡‡‡fdd„¡}t|ƒtkr.t|ƒ}|S)NÚsmemberscsˆ ˆ ˆ¡dˆ¡S)NrL)r5r6r)r#r%r3rrr7–r8z%RedisUtils.smembers.<locals>.<lambda>)r&ÚtypeÚlistrA)r#r3r%r9r,r)r#r%r3rrL”s zRedisUtils.smemberscsˆ dˆ‡‡‡‡fdd„¡S)NÚsremcsˆ ˆ ˆ¡dˆˆ¡S)NrO)r5r6r)r#r%r3rBrrr7r8z!RedisUtils.srem.<locals>.<lambda>)r&)r#r3r%rBr9r)r#r%r3rBrrO›szRedisUtils.sremcCs| |d||f¡dS)NrO)r=)r#r r%rBr9rrrÚ
srem_asyncŸszRedisUtils.srem_asynccsˆ dˆ‡‡‡‡fdd„¡S)NÚincrbycsˆ ˆ ˆ¡dˆˆ¡S)NrQ)r5r6r)r#r%Únumr3rrr7¦r8z#RedisUtils.incrby.<locals>.<lambda>)r&)r#r3r%rRr9r<r)r#r%rRr3rrQ¤szRedisUtils.incrbycCs| |d||f¡dS)NrQ)r=)r#r r%rRr9rrrÚ incrby_async¨szRedisUtils.incrby_asynccsˆ dˆ‡‡‡‡fdd„¡S)NÚlpushcsˆ ˆ ˆ¡dˆˆ¡S)NrT)r5r6r)r#r%r3rBrrr7¯r8z"RedisUtils.lpush.<locals>.<lambda>)r&)r#r3r%rBr9r)r#r%r3rBrrT­szRedisUtils.lpushcsˆ dˆ‡‡‡fdd„¡S)NÚlpopcsˆ ˆ ˆ¡dˆ¡S)NrU)r5r6r)r#r%r3rrr7³r8z!RedisUtils.lpop.<locals>.<lambda>)r&)r#r3r%r9r)r#r%r3rrU±szRedisUtils.lpopcsˆ dˆ‡‡‡‡fdd„¡S)NÚrpushcsˆ ˆ ˆ¡dˆˆ¡S)NrV)r5r6r)r#r%r3rBrrr7·r8z"RedisUtils.rpush.<locals>.<lambda>)r&)r#r3r%rBr9r)r#r%r3rBrrVµszRedisUtils.rpushcCsdS)Nr)r#r3rrrÚrealse¹szRedisUtils.realse)r cCs|j |||f¡dS)N)Ú_RedisUtils__async_task_queueÚ
put_nowait)r#r Úmethodr(rrrr=½szRedisUtils.add_async_taskcCs
|j ¡S)N)rXÚqsize)r#rrrÚget_async_task_countÁszRedisUtils.get_async_task_countc
Cszt d¡t dt ¡›¡g}t ¡}xHy|j ¡}|r|d|dg}t|dƒtksrt|dƒt    kr¸| 
|dd¡t |dƒdkr¬| 
|ddd…¡qÐ| 
d¡n| 
|d¡| 
d¡| 
t|ƒ¡t |ƒdkrz|  |¡}t ¡}Wd|  ¡X|r@t ¡|dkr@|  |¡}t ¡}|  ¡Wq.tk
rp}zt |¡Wdd}~XYq.Xq.WdS)Nu启动Redis数据同步服务uredis çº¿ç¨‹ID:rr-r.éé)rr@rZ get_thread_idr"rXr4rMÚtuplerNr0ÚlenÚ_RedisUtils__batch__requestÚclearÚ    ExceptionÚloggingÚ    exception)r#ZdataListZlast_upload_timer*Z    temp_datar2Úe1rrrÚrun_loopÆs:
 
  
 
 
 
 
zRedisUtils.run_loop)N)T)T)TF)T)T)T)T)TF)T)T)T)T)T)T)T)T)T)T)TF)T)T)T)T)'rrr ÚqueueÚQueuerXÚ classmethodr&r5rar6r4r:r;r>r?rArCrDrFrGrErHrIrJrKrLrOrPrQrSrTrUrVrWÚintr=r\rgrrrrr!$sr                                r!Ú__main__ézbuy_position_info-002547ió)Ú__doc__rdrhÚ    threadingr"rÚconstantÚ
log_modulerÚlog_module.logrrÚutilsrrZ REDIS_CONFIGrÚrangerrr!rÚirFÚ
get_expirergrrrrÚ<module>s&  X