From 25b5717879ed43bddf06ba35cfe6753f30fac9f5 Mon Sep 17 00:00:00 2001 From: Administrator <admin@example.com> Date: 星期四, 14 九月 2023 14:15:11 +0800 Subject: [PATCH] 交易端G撤优化 --- huaxin_client/l2_data_manager.py | 31 ++++++++++++++++++++++++------- 1 files changed, 24 insertions(+), 7 deletions(-) diff --git a/huaxin_client/l2_data_manager.py b/huaxin_client/l2_data_manager.py index d700f08..5a0ae80 100644 --- a/huaxin_client/l2_data_manager.py +++ b/huaxin_client/l2_data_manager.py @@ -101,9 +101,21 @@ code = data['SecurityID'] if code in buy_order_nos_dict: if data['BuyNo'] in buy_order_nos_dict[code]: - if code not in latest_big_order_transaction_orders_dict: - latest_big_order_transaction_orders_dict[code] = set() - latest_big_order_transaction_orders_dict[code].add(data['BuyNo']) + temp_list = latest_big_order_transaction_orders_dict.get(code) + if not temp_list: + temp_list = [] + if temp_list: + if temp_list[-1] != data['BuyNo']: + temp_list.append(data['BuyNo']) + if len(temp_list) > 10: + temp_list = temp_list[-10:] + latest_big_order_transaction_orders_dict[code] = temp_list + else: + temp_list.append(data['BuyNo']) + + + + tmep_transaction_queue_dict[code].put((data['SecurityID'], data['TradePrice'], data['TradeVolume'], data['OrderTime'], data['MainSeq'], data['SubSeq'], data['BuyNo'], data['SellNo'], data['ExecType'])) @@ -286,12 +298,14 @@ if code not in target_codes: return # 濡傛灉鏈�杩戠殑娲诲姩鏃堕棿灏忎簬2s灏变笉闇�瑕佽繍琛� - if code not in order_detail_upload_active_time_dict or time.time() - order_detail_upload_active_time_dict[code] > 2: + if code not in order_detail_upload_active_time_dict or time.time() - order_detail_upload_active_time_dict[ + code] > 2: t = threading.Thread(target=lambda: __run_upload_order(code, l2_data_callback), daemon=True) t.start() __upload_order_threads[code] = t - if code not in transaction_upload_active_time_dict or time.time() - transaction_upload_active_time_dict[code] > 2: + if code not in transaction_upload_active_time_dict or time.time() - transaction_upload_active_time_dict[ + code] > 2: t = threading.Thread(target=lambda: __run_upload_trans(code, l2_data_callback), daemon=True) t.start() __upload_trans_threads[code] = t @@ -327,12 +341,14 @@ # 鐩爣浠g爜鍔犲叆2s涔嬪悗鍚姩瀹堟姢 if time.time() - target_codes_add_time[code] > 2: if code not in __upload_order_threads or not __upload_order_threads[code].is_alive(): - t = threading.Thread(target=lambda: __run_upload_order(code, _l2_data_callback), daemon=True) + t = threading.Thread(target=lambda: __run_upload_order(code, _l2_data_callback), + daemon=True) t.start() __upload_order_threads[code] = t logger_local_huaxin_l2_upload.info(f"閲嶆柊鍒涘缓L2璁㈠崟涓婁紶绾跨▼锛歿code}") if code not in __upload_trans_threads or not __upload_trans_threads[code].is_alive(): - t = threading.Thread(target=lambda: __run_upload_trans(code, _l2_data_callback), daemon=True) + t = threading.Thread(target=lambda: __run_upload_trans(code, _l2_data_callback), + daemon=True) t.start() __upload_trans_threads[code] = t logger_local_huaxin_l2_upload.info(f"閲嶆柊鍒涘缓L2鎴愪氦涓婁紶绾跨▼锛歿code}") @@ -340,6 +356,7 @@ pass finally: time.sleep(3) + t = threading.Thread(target=lambda: upload_daemon(), daemon=True) t.start() -- Gitblit v1.8.0