From cae724f751e1ccc797ec6457af5f11ad8a2f24f2 Mon Sep 17 00:00:00 2001 From: admin <admin@example.com> Date: 星期二, 27 五月 2025 18:30:37 +0800 Subject: [PATCH] bug修复 --- data_server.py | 56 ++++++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 48 insertions(+), 8 deletions(-) diff --git a/data_server.py b/data_server.py index 306a99f..0c6bfda 100644 --- a/data_server.py +++ b/data_server.py @@ -14,10 +14,10 @@ import constant from db import redis_manager_delegate as redis_manager, mysql_data_delegate as mysql_data from db.redis_manager_delegate import RedisUtils -from log_module import log_export +from log_module import log_export, async_log_util from log_module.log import hx_logger_l2_transaction, logger_debug, logger_request_api from strategy import data_cache -from strategy.kpl_data_manager import KPLStockOfMarketsPlateLogManager +from strategy.kpl_data_manager import KPLMarketsSiftPlateLogManager, KPLMarketStockHeatLogManager from strategy.trade_setting import TradeSetting from trade import huaxin_trade_api, huaxin_trade_data_update from trade.huaxin_trade_record_manager import DelegateRecordManager, DealRecordManager, MoneyManager, PositionManager @@ -123,6 +123,7 @@ response_data = json.dumps({"code": 0, "data": {}}) elif url.path == "/get_env": + request_id = params_dict.get("request_id") use_time_list = [] try: __start_time = time.time() @@ -186,23 +187,46 @@ response_data = json.dumps(result) except Exception as e: response_data = json.dumps({"code": 1, "msg": str(e)}) + logger_debug.error(f"鐜鑾峰彇寮傚父锛歿request_id}") logger_debug.exception(e) finally: if use_time_list and use_time_list[-1][1] > 10: - logger_debug.warning(f"鐜鑾峰彇鏃堕棿澶т簬10s:{use_time_list}") - - elif url.path == "/load_kpl_stock_of_markets_plate": + logger_debug.warning(f"鐜鑾峰彇鏃堕棿澶т簬10s({request_id}):{use_time_list}") + # 鑾峰彇鏉垮潡寮哄害鏁版嵁 + elif url.path == "/load_kpl_market_sift_plate": # 鍔犺浇鏁版嵁 - KPLStockOfMarketsPlateLogManager().load_data() + KPLMarketsSiftPlateLogManager().load_data() response_data = json.dumps({"code": 0, "msg": "鏆傛棤鍐呭"}) - elif url.path == "/get_kpl_stock_of_markets_plate": + elif url.path == "/get_kpl_market_sift_plate": + # 鑾峰彇寮�鐩樺暒娴佸叆鏉垮潡璇︾粏淇℃伅 + print("==========get_kpl_market_sift_plate==========") + try: + time_str = params_dict.get("time") + if not time_str: + time_str = tool.get_now_time_str() + fdatas = KPLMarketsSiftPlateLogManager().get_filter_log_datas() + response_data = json.dumps({"code": 1, "msg": "鏆傛棤鍐呭"}) + for i in range(len(fdatas) - 1, -1, -1): + if fdatas[i][0] <= time_str: + response_data = json.dumps({"code": 0, "data": fdatas[i]}) + break + except Exception as e: + logging.exception(e) + response_data = json.dumps({"code": 1, "msg": str(e)}) + + # 鑾峰彇涓偂寮哄害鏁版嵁 + elif url.path == "/load_kpl_market_stock_heat": + # 鍔犺浇鏁版嵁 + KPLMarketStockHeatLogManager().load_data() + response_data = json.dumps({"code": 0, "msg": "鏆傛棤鍐呭"}) + elif url.path == "/get_kpl_market_stock_heat": # 鑾峰彇寮�鐩樺暒娴佸叆鏉垮潡璇︾粏淇℃伅 print("==========get_kpl_stock_of_markets_plate==========") try: time_str = params_dict.get("time") if not time_str: time_str = tool.get_now_time_str() - fdatas = KPLStockOfMarketsPlateLogManager().get_filter_log_datas() + fdatas = KPLMarketStockHeatLogManager().get_filter_log_datas() response_data = json.dumps({"code": 1, "msg": "鏆傛棤鍐呭"}) for i in range(len(fdatas) - 1, -1, -1): if fdatas[i][0] <= time_str: @@ -306,6 +330,12 @@ raise Exception("娌℃湁鑾峰彇鍒癓1鏁版嵁") pre_price = data[1] current_price = data[2] if data[2] else data[5][0][0] + # 鑾峰彇鏈�鏂版垚浜や环鏍� + latest_deal_price = data_cache.latest_deal_price_dict.get(code) + if latest_deal_price: + current_price = round(float(latest_deal_price), 2) + async_log_util.info(logger_debug, f"鏍规嵁鎴愪氦浠峰崠鍑猴細{code}-{latest_deal_price}") + price = tool.get_buy_min_price(current_price) price = max(price, tool.get_limit_down_price(code, pre_price)) else: @@ -372,6 +402,16 @@ # 鎴愪氦澶у崟浼犻�� datas = self.rfile.read(int(self.headers['content-length'])) _str = str(datas, encoding="gbk") + datas = json.loads(_str) + for d in datas: + if d[1] != 0: + continue + code, data = d[0], d[2] + if code not in data_cache.big_order_deal_dict: + data_cache.big_order_deal_dict[code] = [] + data_cache.big_order_deal_dict[code].append(d) + # 鑾峰彇涔板ぇ鍗曟暟閲� + len(data_cache.big_order_deal_dict.get(code, [])) hx_logger_l2_transaction.info(_str) # 璁板綍鏃ュ織 result_str = json.dumps({"code": 0}) -- Gitblit v1.8.0