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