From 5715545bec1d88fe9cc4ea79db0a5d1148694590 Mon Sep 17 00:00:00 2001 From: Administrator <admin@example.com> Date: 星期二, 14 十一月 2023 14:35:54 +0800 Subject: [PATCH] L2数据后置过滤 --- l2/l2_data_listen_manager.py | 51 +++++++++++++++++++++++++++++++-------------------- 1 files changed, 31 insertions(+), 20 deletions(-) diff --git a/l2/l2_data_listen_manager.py b/l2/l2_data_listen_manager.py index 275b24c..4fbefc9 100644 --- a/l2/l2_data_listen_manager.py +++ b/l2/l2_data_listen_manager.py @@ -28,22 +28,28 @@ __id = id(q) count = 0 while True: - datas_dict = {} + # datas_dict = {} try: - while not q.empty(): + if not q.empty(): item = q.get() - if item[0] not in datas_dict: - datas_dict[item[0]] = [] - datas_dict[item[0]].append(item) - if datas_dict: - for c in datas_dict: - self.my_l2_data_callback.OnL2Order(c, datas_dict[c], datas_dict[c][0][10]) + self.my_l2_data_callback.OnL2Order(item[0], item[1], item[2]) else: - time.sleep(0.002) + time.sleep(0.001) + + # while not q.empty(): + # item = q.get() + # if item[0] not in datas_dict: + # datas_dict[item[0]] = [] + # datas_dict[item[0]].append(item) + # if datas_dict: + # for c in datas_dict: + # self.my_l2_data_callback.OnL2Order(c, datas_dict[c], datas_dict[c][0][10]) + # else: + # time.sleep(0.002) except Exception as e: async_log_util.exception(logger_debug, e) finally: - datas_dict.clear() + # datas_dict.clear() count += 1 if count > 100: count = 0 @@ -53,24 +59,29 @@ # 鎺ユ敹L2閫愮瑪鎴愪氦鏁版嵁 def __recive_transaction_orders(self, q: multiprocessing.Queue): __id = id(q) - datas_dict = {} + # datas_dict = {} count = 0 while True: try: - while not q.empty(): + # while not q.empty(): + # item = q.get() + # if item[0] not in datas_dict: + # datas_dict[item[0]] = [] + # datas_dict[item[0]].append(item) + # if datas_dict: + # for c in datas_dict: + # self.my_l2_data_callback.OnL2Transaction(c, datas_dict[c]) + # else: + # time.sleep(0.01) + if not q.empty(): item = q.get() - if item[0] not in datas_dict: - datas_dict[item[0]] = [] - datas_dict[item[0]].append(item) - if datas_dict: - for c in datas_dict: - self.my_l2_data_callback.OnL2Transaction(c, datas_dict[c]) + self.my_l2_data_callback.OnL2Transaction(item[0], item[1]) else: - time.sleep(0.01) + time.sleep(0.005) except Exception as e: async_log_util.exception(logger_debug, e) finally: - datas_dict.clear() + # datas_dict.clear() count += 1 if count > 50: count = 0 -- Gitblit v1.8.0