From 1e3b00bbbbd561918975888499f3d37eadf07144 Mon Sep 17 00:00:00 2001 From: Administrator <admin@example.com> Date: 星期五, 20 十月 2023 15:18:02 +0800 Subject: [PATCH] 9:25:00到9:30:00更新一次l1订阅代码 --- huaxin_client/l1_client.py | 60 +++++++++++++++++++++++++++++++++++++++++++----------------- 1 files changed, 43 insertions(+), 17 deletions(-) diff --git a/huaxin_client/l1_client.py b/huaxin_client/l1_client.py index 94ef476..7d7cb98 100644 --- a/huaxin_client/l1_client.py +++ b/huaxin_client/l1_client.py @@ -8,7 +8,6 @@ from huaxin_client import socket_util, l1_subscript_codes_manager import xmdapi from huaxin_client import tool, constant -from huaxin_client.client_network import SendResponseSkManager from log_module.log import logger_system, logger_local_huaxin_l1, logger_l2_codes_subscript level1_data_dict = { @@ -45,6 +44,23 @@ login_req = xmdapi.CTORATstpReqUserLoginField() self.__api.ReqUserLogin(login_req, 1) + def subscribe_codes(self, codes_sh, codes_sz): + # 閲嶆柊璁㈤槄浠g爜 + print(f"璁㈤槄鏁伴噺锛歴h-{len(codes_sh)} sz-{len(codes_sz)}") + if codes_sh: + ret = self.__api.SubscribeMarketData(codes_sh, xmdapi.TORA_TSTP_EXD_SSE) + if ret != 0: + print('SubscribeMarketData fail, ret[%d]' % ret) + else: + print('SubscribeMarketData success, ret[%d]' % ret) + + if codes_sz: + ret = self.__api.SubscribeMarketData(codes_sz, xmdapi.TORA_TSTP_EXD_SZSE) + if ret != 0: + print('SubscribeMarketData fail, ret[%d]' % ret) + else: + print('SubscribeMarketData success, ret[%d]' % ret) + def OnRspUserLogin(self, pRspUserLoginField, pRspInfoField, nRequestID): if pRspInfoField.ErrorID == 0: print('Login success! [%d]' % nRequestID) @@ -56,21 +72,7 @@ 鍏跺畠鎯呭喌锛岃闃卻ub_arr闆嗗悎涓殑鍚堢害琛屾儏 ''' - print(f"璁㈤槄鏁伴噺锛歴h-{len(self.codes_sh)} sz-{len(self.codes_sz)}") - if self.codes_sh: - ret = self.__api.SubscribeMarketData(self.codes_sh, xmdapi.TORA_TSTP_EXD_SSE) - if ret != 0: - print('SubscribeMarketData fail, ret[%d]' % ret) - else: - print('SubscribeMarketData success, ret[%d]' % ret) - - if self.codes_sz: - ret = self.__api.SubscribeMarketData(self.codes_sz, xmdapi.TORA_TSTP_EXD_SZSE) - if ret != 0: - print('SubscribeMarketData fail, ret[%d]' % ret) - else: - print('SubscribeMarketData success, ret[%d]' % ret) - + self.subscribe_codes(self.codes_sh, self.codes_sz) # sub_arr = [b'600004'] # ret = self.__api.UnSubscribeMarketData(sub_arr, xmdapi.TORA_TSTP_EXD_SSE) # if ret != 0: @@ -140,6 +142,24 @@ logger_local_huaxin_l1.info(f"({request_id})鏂板鍔犺闃呯殑浠g爜锛歿add_codes}") +is_re_subscript = False + + +# 閲嶆柊璁㈤槄浠g爜 +def re_subscript(spi: MdSpi): + try: + global is_re_subscript + if is_re_subscript: + return + is_re_subscript = True + codes_sh, codes_sz = l1_subscript_codes_manager.request_l1_subscript_target_codes() + if len(codes_sh) > 100 and len(codes_sz) > 100: + logger_local_huaxin_l1.info(f"閲嶆柊璁㈤槄 sh-{len(codes_sh)} sz-{len(codes_sz)}") + spi.subscribe_codes(codes_sh, codes_sz) + except: + pass + + def run(pipe_l2): logger_local_huaxin_l1.info("杩愯l1璁㈤槄鏈嶅姟") codes_sh = [] @@ -147,7 +167,6 @@ for i in range(15): try: codes_sh, codes_sz = l1_subscript_codes_manager.get_codes() - logger_local_huaxin_l1.info(f"鑾峰彇涓婅瘉锛屾繁璇佷唬鐮佹暟閲忥細sh-{len(codes_sh)} sz-{len(codes_sz)}") break except Exception as e: @@ -212,6 +231,13 @@ logging.exception(e) finally: time.sleep(3) + # 鍒ゆ柇鏄惁闇�瑕侀噸鏂拌闃� + if tool.is_pre_trade_time(): + re_subscript(spi) + else: + global is_re_subscript + is_re_subscript = False + # 閲婃斁鎺ュ彛瀵硅薄 api.Release() -- Gitblit v1.8.0