From 315855587800b136d894771f41b72c60cc37bd32 Mon Sep 17 00:00:00 2001
From: Administrator <admin@example.com>
Date: 星期二, 26 十一月 2024 18:11:48 +0800
Subject: [PATCH] 接口修改/redis队列溢出保护/减少不必要的日志输出

---
 third_data/kpl_limit_up_data_manager.py |   71 +++++++++++++++++++++--------------
 1 files changed, 42 insertions(+), 29 deletions(-)

diff --git a/third_data/kpl_limit_up_data_manager.py b/third_data/kpl_limit_up_data_manager.py
index 85a3413..9fc7629 100644
--- a/third_data/kpl_limit_up_data_manager.py
+++ b/third_data/kpl_limit_up_data_manager.py
@@ -4,6 +4,7 @@
 from third_data import kpl_util, kpl_data_manager
 from third_data.history_k_data_manager import HistoryKDataManager
 from third_data.history_k_data_util import HistoryKDatasUtils
+from third_data.kpl_data_constant import LimitUpCodesBlockRecordManager
 from utils import tool, init_data_util
 
 
@@ -43,6 +44,13 @@
     __first_block_sequence_dict = {}
 
     @classmethod
+    def __get_code_blocks(cls, code):
+        blocks = LimitUpCodesBlockRecordManager().get_radical_buy_blocks(code)
+        if not blocks:
+            blocks = set()
+        return blocks
+
+    @classmethod
     def set_current_limit_up_datas(cls, current_limit_up_datas):
         """
         璁剧疆鐩墠鐨勬定鍋滀唬鐮�
@@ -59,49 +67,54 @@
         block_codes = {}
         limit_up_codes = set()
         for code in current_code_block_dict:
-            b = current_code_block_dict[code][1]
-            if b not in block_codes:
-                block_codes[b] = set()
-            block_codes[b].add(code)
+            bs = cls.__get_code_blocks(code)
+            for b in bs:
+                if b not in block_codes:
+                    block_codes[b] = set()
+                block_codes[b].add(code)
             limit_up_codes.add(code)
         for code in record_code_block_dict:
-            b = record_code_block_dict[code][1]
-            if b not in block_codes:
-                block_codes[b] = set()
-            block_codes[b].add(code)
+            bs = cls.__get_code_blocks(code)
+            for b in bs:
+                if b not in block_codes:
+                    block_codes[b] = set()
+                block_codes[b].add(code)
         # 鑾峰彇涓婁釜浜ゆ槗鏃ユ定鍋滅殑浠g爜
         yesterday_codes = kpl_data_manager.get_yesterday_limit_up_codes()
         if yesterday_codes is None:
             yesterday_codes = set()
 
         for code in limit_up_codes:
-            # 璁$畻韬綅
-            b = current_code_block_dict[code][1]
-            codes = block_codes[b]
-            total_count = len(codes)
-            # 缁熻鐪熸娑ㄥ仠鏁�
-            limit_up_count = 0
-            limit_up_codes_list = []
-            for c in codes:
-                if c in limit_up_codes:
-                    limit_up_count += 1
-                    if c not in yesterday_codes:
-                        limit_up_codes_list.append((c, current_code_block_dict[c][2]))
-            # 鑾峰彇棣栨澘浠g爜鐨勬帓浣�
-            limit_up_codes_list.sort(key=lambda x: x[1])
-            index = 1
-            for i in range(0, len(limit_up_codes_list)):
-                if limit_up_codes_list[i][0] == code:
-                    index = i + 1
-                    break
-            cls.__first_block_sequence_dict[code] = (b, index, total_count, limit_up_count)
+            bs = cls.__get_code_blocks(code)
+            for b in bs:
+                # 璁$畻韬綅
+                codes = block_codes[b]
+                total_count = len(codes)
+                # 缁熻鐪熸娑ㄥ仠鏁�
+                limit_up_count = 0
+                limit_up_codes_list = []
+                for c in codes:
+                    if c in limit_up_codes:
+                        limit_up_count += 1
+                        if c not in yesterday_codes:
+                            limit_up_codes_list.append((c, current_code_block_dict[c][2]))
+                # 鑾峰彇棣栨澘浠g爜鐨勬帓浣�
+                limit_up_codes_list.sort(key=lambda x: x[1])
+                index = 1
+                for i in range(0, len(limit_up_codes_list)):
+                    if limit_up_codes_list[i][0] == code:
+                        index = i + 1
+                        break
+                if code not in cls.__first_block_sequence_dict:
+                    cls.__first_block_sequence_dict[code] = []
+                cls.__first_block_sequence_dict[code].append((b, index, total_count, limit_up_count))
 
     @classmethod
     def get_current_limit_up_sequence(cls, code):
         """
         鑾峰彇浠g爜褰撳墠鐨勬澘鍧楄韩浣�
         @param code:
-        @return:锛堟澘鍧楀悕绉�,韬綅,鎬绘定鍋滄暟閲忥紝鐩墠娑ㄥ仠鏁伴噺锛�
+        @return:[锛堟澘鍧楀悕绉�,韬綅,鎬绘定鍋滄暟閲忥紝鐩墠娑ㄥ仠鏁伴噺锛塢
         """
         return cls.__first_block_sequence_dict.get(code)
 

--
Gitblit v1.8.0