From b2b9497053639a359dc50c05674dfa81169ed31e Mon Sep 17 00:00:00 2001
From: Administrator <admin@example.com>
Date: 星期三, 03 七月 2024 15:09:14 +0800
Subject: [PATCH] 外部API接口调整/增加历史K线更新接口

---
 third_data/history_k_data_manager.py |   50 ++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 44 insertions(+), 6 deletions(-)

diff --git a/third_data/history_k_data_manager.py b/third_data/history_k_data_manager.py
index 55cc1e3..b8797a0 100644
--- a/third_data/history_k_data_manager.py
+++ b/third_data/history_k_data_manager.py
@@ -3,8 +3,45 @@
 """
 import datetime
 import os
+import threading
 
 import constant
+from huaxin_client import l1_subscript_codes_manager
+from log_module.log import logger_debug
+from third_data import history_k_data_util
+from utils import tool, init_data_util
+
+
+def update_history_k_bars():
+    """
+    鏇存柊鍘嗗彶K绾�
+    @return: 姝ゆ鏇存柊鐨勬暟閲�
+    """
+    def update(codes_):
+        for code in codes_:
+            try:
+                datas = init_data_util.get_volumns_by_code(code)
+                HistoryKDataManager().save_history_bars(code, datas[0]['bob'].strftime("%Y-%m-%d"), datas)
+            except Exception as e:
+                logger_debug.exception(e)
+    previous_trading_date = history_k_data_util.JueJinApi.get_previous_trading_date(tool.get_now_date_str())
+    if previous_trading_date is None:
+        raise Exception("涓婁竴涓氦鏄撴棩鑾峰彇澶辫触")
+    # 鍒锋柊鐩爣浠g爜鐨勮嚜鐢辨祦閫氶噺
+    codes_sh, codes_sz = l1_subscript_codes_manager.get_codes(False)
+    codes = set()
+    if codes_sh:
+        for code_byte in codes_sh:
+            codes.add(code_byte.decode())
+        for code_byte in codes_sz:
+            codes.add(code_byte.decode())
+    # 鑾峰彇宸茬粡鏇存柊鐨勬暟鎹�
+    codes_record = HistoryKDataManager().get_history_bars_codes(previous_trading_date)
+    codes = codes - codes_record
+    threading.Thread(target=lambda: update(codes), daemon=True).start()
+
+    return len(codes)
+
 
 
 class HistoryKDataManager:
@@ -97,17 +134,18 @@
                 return datas
         return None
 
-    def get_history_bars_code_count(self, day):
+    def get_history_bars_codes(self, day):
         """
-        鑾峰彇鏌愪竴澶╃殑鍘嗗彶K绾跨殑鏁伴噺
+        鑾峰彇鏌愪竴澶╃殑鍘嗗彶K绾跨殑浠g爜鏁版嵁
         @param day:
-        @return:
+        @return: 浠g爜闆嗗悎
         """
+
         dir_path = self.__get_cache_dir()
-        count = 0
+        codes = set()
         for root, dirs, files in os.walk(dir_path):
             for file in files:
                 # 杈撳嚭鏂囦欢鐨勭粷瀵硅矾寰�
                 if file.find(day) >= 0:
-                    count += 1
-        return count
+                    codes.add(file.split("_")[1][:6])
+        return codes

--
Gitblit v1.8.0