From a00da3062c6c825b585f82275823ac45cdeb6502 Mon Sep 17 00:00:00 2001
From: Administrator <admin@example.com>
Date: 星期五, 19 一月 2024 19:16:20 +0800
Subject: [PATCH] L后成交太快撤单

---
 third_data/history_k_data_util.py |   52 +++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 47 insertions(+), 5 deletions(-)

diff --git a/third_data/history_k_data_util.py b/third_data/history_k_data_util.py
index 62157f2..ed60d06 100644
--- a/third_data/history_k_data_util.py
+++ b/third_data/history_k_data_util.py
@@ -4,13 +4,17 @@
 import datetime
 import decimal
 import json
+import time
 
 import requests
 
 import constant
-from db.redis_manager import RedisUtils
+from db.redis_manager_delegate import RedisUtils
+from log_module.log import logger_request_api
 from utils import tool, middle_api_protocol
-from db import redis_manager
+from db import redis_manager_delegate as redis_manager
+
+
 # import gm.api as gmapi
 
 
@@ -29,7 +33,14 @@
         fdata = None
         if DELEGATE:
             fdata = middle_api_protocol.load_juejin(path_str, data_json)
-            fdata = middle_api_protocol.request(fdata)
+            __start_time = time.time()
+            try:
+                fdata = middle_api_protocol.request(fdata)
+            finally:
+                __use_time = time.time() - __start_time
+                if __use_time > 5:
+                    logger_request_api.info(f"鎺橀噾API璇锋眰鏃堕棿锛歿path_str}-{int(__use_time)}")
+
         else:
             url = f'{cls.__BASE_URL}{path_str}'
             # 鍙戦�丳OST璇锋眰
@@ -194,6 +205,8 @@
 
 
 class HistoryKDatasUtils(object):
+    __previous_trading_date_cache = {}
+    __latest_trading_date_cache = {}
 
     @classmethod
     def get_gp_latest_info(cls, codes, fields=None):
@@ -211,6 +224,35 @@
     @classmethod
     def get_previous_trading_date(cls, date):
         return JueJinApi.get_previous_trading_date(date)
+
+    @classmethod
+    def get_previous_trading_date_cache(cls, date):
+        if date in cls.__previous_trading_date_cache:
+            return cls.__previous_trading_date_cache.get(date)
+        fdata = cls.get_previous_trading_date(date)
+        if fdata:
+            cls.__previous_trading_date_cache[date] = fdata
+        return fdata
+
+    # 鑾峰彇鏈�杩戠殑浜ゆ槗鏃�
+    @classmethod
+    def get_latest_trading_date(cls, day_count):
+        now_day = tool.get_now_date_str()
+        days = []
+        for i in range(day_count):
+            pday = cls.get_previous_trading_date_cache(now_day)
+            days.append(pday)
+            now_day = pday
+        return days
+
+    @classmethod
+    def get_latest_trading_date_cache(cls, day_count):
+        key = f"{tool.get_now_date_str()}-{day_count}"
+        if key in cls.__latest_trading_date_cache:
+            return cls.__latest_trading_date_cache[key]
+        days = cls.get_latest_trading_date(day_count)
+        cls.__latest_trading_date_cache[key] = days
+        return days
 
     # 杩斿洖鎸囧畾鏃ユ湡鐨勪笅涓氦鏄撴棩
     @classmethod
@@ -274,5 +316,5 @@
 
 
 if __name__ == "__main__":
-    constant.JUEJIN_LOCAL_API = False
-    print(HistoryKDatasUtils.get_lowest_price_rate("000725", 30))
+    results = HistoryKDatasUtils.get_codes_limit_rate(list({"000422", "600610"}))
+    print(results)

--
Gitblit v1.8.0