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