From cb824ff6c70b0d9bbb28dd4cb648c98766745071 Mon Sep 17 00:00:00 2001
From: Administrator <admin@example.com>
Date: 星期四, 27 二月 2025 17:22:40 +0800
Subject: [PATCH] 成交大单上传

---
 l2_test.py |   24 +++++++++++++++++++++++-
 1 files changed, 23 insertions(+), 1 deletions(-)

diff --git a/l2_test.py b/l2_test.py
index 07d0a4a..af95ec6 100644
--- a/l2_test.py
+++ b/l2_test.py
@@ -2,6 +2,7 @@
 import json
 import logging
 import multiprocessing
+import queue
 import socketserver
 import threading
 import time
@@ -14,7 +15,7 @@
 from huaxin_client import l2_client_test, l1_subscript_codes_manager
 from log_module.log import logger_local_huaxin_l2_transaction_big_order, logger_system
 from third_data.custom_block_in_money_manager import CodeInMoneyManager, BlockInMoneyRankManager
-from utils import tool
+from utils import tool, middle_api_protocol
 import urllib.parse as urlparse
 from urllib.parse import parse_qs
 
@@ -88,6 +89,22 @@
         logger_system.error(f"绔彛鏈嶅姟鍣細{port} 鍚姩澶辫触")
 
 
+def __run_upload_big_order_task(_queue: queue.Queue):
+    # 杩愯涓婁紶澶у崟浠诲姟
+    while True:
+        try:
+            datas = []
+            while not _queue.empty():
+                datas.append(_queue.get())
+            if datas:
+                # 涓婁紶鏁版嵁
+                middle_api_protocol.request(middle_api_protocol.get_big_orders(datas))
+        except:
+            pass
+        finally:
+            time.sleep(1)
+
+
 def run():
     codes_sh, codes_sz = l1_subscript_codes_manager.get_codes()
     codes = [x.decode() for x in codes_sh]
@@ -98,6 +115,8 @@
     page_size = int(len(codes) / cpu_count) + 1
 
     big_order_queue = multiprocessing.Queue()
+    # 澶у崟涓婁紶闃熷垪
+    big_order_upload_queue = queue.Queue()
 
     for i in range(cpu_count):
         process = multiprocessing.Process(target=l2_client_test.run,
@@ -106,10 +125,13 @@
         process.start()
         # 缁戞牳杩愯
         psutil.Process(process.pid).cpu_affinity([i])
+    threading.Thread(target=__run_upload_big_order_task, args=(big_order_upload_queue,), daemon=True).start()
     while True:
         try:
             data = big_order_queue.get()
             CodeInMoneyManager().add_data(data)
+            # 娣诲姞涓婁紶鏁版嵁
+            big_order_upload_queue.put_nowait(data)
             logger_local_huaxin_l2_transaction_big_order.info(f"{data}")
         except:
             pass

--
Gitblit v1.8.0