admin
2025-01-15 f84dcf456dbfa318f490d6cf878be5d5d5262718
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
B
×ù=f¢ã@sÒdZddlZddlZddlZddlZddlmZddlm    Z    m
Z
m Z m Z dZ dZdZdZd    Zd
Zd Zd Zd ZdZGdd„deƒZGdd„deƒZGdd„dƒZGdd„dƒZedkrÎedddƒZe ¡eƒdS)u
命令管理器
éN)Úasync_log_util)Úlogger_local_huaxin_trade_debugÚ logger_tradeÚ!logger_local_huaxin_contact_debugÚ logger_infoZheartÚcmdÚtradeZ delegate_listZ    deal_listZ position_listZmoneyZdealZl2_cmdéc@s<eZdZdd„Zdd„Zdd„Zdd„Zd    d
„Zd d „Zd S)ÚTradeActionCallbackcCsdS)N©)ÚselfÚ    client_idÚ
request_idÚskÚtype_Údatar r ú8D:\workspace\trade_sell\huaxin_client\command_manager.pyÚOnTrade szTradeActionCallback.OnTradecCsdS)Nr )r r rrÚ
can_cancelr r rÚOnDelegateList$sz"TradeActionCallback.OnDelegateListcCsdS)Nr )r r rrr r rÚ
OnDealList(szTradeActionCallback.OnDealListcCsdS)Nr )r r rrr r rÚOnPositionList,sz"TradeActionCallback.OnPositionListcCsdS)Nr )r r rrr r rÚOnMoney0szTradeActionCallback.OnMoneycCsdS)Nr )r r rrrr r rÚOnTest4szTradeActionCallback.OnTestN)    Ú__name__Ú
__module__Ú __qualname__rrrrrrr r r rr
s r
c@seZdZdd„ZdS)ÚL2ActionCallbackcCsdS)Nr )r Z
codes_datar r rÚOnSetL2Position:sz L2ActionCallback.OnSetL2PositionN)rrrrr r r rr8srcsteZdZiZdZejjddZ‡fdd„Z    e
e e j dœdd„ƒZe
dd    d
„ƒZe
e j d œd d „ƒZddd„Z‡ZS)ÚTradeCommandManagerNé)Ú max_workerscs"|jstƒj|f|ž|Ž|_|jS)N)Ú    _instanceÚsuperÚ__new__)ÚclsÚargsÚkwargs)Ú    __class__r rr$DszTradeCommandManager.__new__)Útrade_action_callbackÚ#queue_strategy_trade_read_for_tradecCs||_||_dS)N)Úaction_callbackÚqueue_strategy_w_trade_r)r%r)r*r r rÚinitIszTradeCommandManager.initc
 
Cs:t td|›¡yì|d}| d¡}|tkrp|d}t td|›¡|j |||||¡t td|›¡nŒ|tkrŠ|j     |||¡nr|t
kr¤|j  |||¡nX|t krÈ|d}|j  ||||¡n4|tkrâ|j |||¡n|dkrü|j ||||¡Wn6tk
r4}    zt td    |›¡Wdd}    ~    XYnXdS)
Nuprocess_command: rrZ
trade_typeu 交易开始:u 交易结束:rÚtestuprocess_command出错: )rÚinforÚgetÚCLIENT_TYPE_TRADErr+rÚCLIENT_TYPE_MONEYrÚCLIENT_TYPE_DEAL_LISTrÚCLIENT_TYPE_DELEGATE_LISTrÚCLIENT_TYPE_POSITION_LISTrrÚ    ExceptionÚerror)
r%Ú_typer Ú result_jsonrrrÚctyperÚer r rÚprocess_commandOs,
z#TradeCommandManager.process_command)Úqueue_strategy_tradec
CsÔ|dkr dSy”xŽyP| ¡}|r^|d}|dkrPt td|›¡t d|›¡| |d|¡Wqtk
r˜}zt t|¡t     |¡Wdd}~XYqXqWWn.tk
rÎ}zt t|¡Wdd}~XYnXdS)NÚtyper.u接受到信息: )
r0rr/rrr<r6Ú    exceptionrÚlogging)r%r=Úvalr8r;r r rÚrun_process_commandms" $z'TradeCommandManager.run_process_commandTcs4|rˆ ˆj¡ntj‡fdd„dd}| ¡dS)Ncs ˆ ˆj¡S)N)rBr,r )r r rÚ<lambda>‰óz)TradeCommandManager.run.<locals>.<lambda>T)ÚtargetÚdaemon)rBr,Ú    threadingÚThreadÚstart)r ÚblockingÚt1r )r rÚrun„szTradeCommandManager.run)N)T)rrrZtrade_client_dictr"Ú
concurrentÚfuturesÚThreadPoolExecutorZprocess_command_thread_poolr$Ú classmethodr
ÚmultiprocessingÚQueuer-r<rBrLÚ __classcell__r r )r(rr?s  rc@s(eZdZdZedd„ƒZedd„ƒZdS)ÚL2CommandManagerNcCs
||_dS)N)r+)r%Zl2_action_callbackr r rr-‘szL2CommandManager.initcCs(|d}|d}|tkr$|j |¡dS)Nrr>)ÚCLIENT_TYPE_CMD_L2r+r)r%r8r r9rr:r r rr<•sz L2CommandManager.process_command)rrrr+rPr-r<r r r rrTŽs rTÚ__main__z    127.0.0.1i') Ú__doc__Úconcurrent.futuresrMr@rQrGÚ
log_modulerÚlog_module.logrrrrZMSG_TYPE_HEARTZ MSG_TYPE_CMDr1r4r3r5r2ZCLIENT_TYPE_DEALrUZHEART_SPACE_TIMEÚobjectr
rrrTrÚmanagerrLÚinputr r r rÚ<module>s0 O