From 68464c679ae5e1ae35e7e67e3b339ba0f939cbd3 Mon Sep 17 00:00:00 2001
From: Administrator <admin@example.com>
Date: 星期三, 15 三月 2023 14:46:03 +0800
Subject: [PATCH] 选股宝板块优化

---
 gpcode_manager.py |   36 ++++++++++++++++++++++++++++++++++--
 1 files changed, 34 insertions(+), 2 deletions(-)

diff --git a/gpcode_manager.py b/gpcode_manager.py
index c33607e..b1099a8 100644
--- a/gpcode_manager.py
+++ b/gpcode_manager.py
@@ -80,6 +80,15 @@
         return val.get(name)
 
     @classmethod
+    def add_first_code_name(cls, code,name):
+        val = cls.__get_redis().get("gp_list_names_first")
+        if not val:
+            return None
+        val = json.loads(val)
+        val[name] = code
+        cls.set_first_code_names(val)
+
+    @classmethod
     def get_second_name_code(cls, name):
         val = cls.__get_redis().get("gp_list_names")
         if not val:
@@ -456,6 +465,14 @@
         redis_instance.setex(key, tool.get_expire(), "")
 
 
+def clear_first_codes():
+    redis_instance = __redisManager.getRedis()
+    redis_instance.delete("gp_list_first")
+    redis_instance.delete("gp_list_names_first")
+    redis_instance.delete("first_code_record")
+    redis_instance.delete("first_code_limited_up_record")
+
+
 # 鑾峰彇鍙互鎿嶄綔鐨勪綅缃�
 def get_can_listen_pos(client_id=0):
     client_ids = []
@@ -492,6 +509,21 @@
     return None, None
 
 
+# 鑾峰彇鍙互鎿嶄綔鐨勪綅缃�
+def get_free_listen_pos_count():
+    client_ids = client_manager.getValidL2Clients()
+    free_count = 0
+    for client_id in client_ids:
+        redis_instance = __redisManager.getRedis()
+        k = "listen_code-{}-*".format(client_id)
+        keys = redis_instance.keys(k)
+        for key in keys:
+            code = redis_instance.get(key)
+            if not code:
+                free_count += 1
+    return free_count
+
+
 # 鑾峰彇姝e湪鐩戝惉鐨勪唬鐮佺殑浣嶇疆
 def get_listen_code_pos(code):
     redis_instance = __redisManager.getRedis()
@@ -523,7 +555,7 @@
 def is_listen_full():
     clients = client_manager.getValidL2Clients()
     codes = get_listen_codes()
-    return len(codes) >= 8 * len(clients)
+    return len(codes) >= constant.L2_CODE_COUNT_PER_DEVICE * len(clients)
 
 
 # 鏄惁姝e湪鎿嶄綔
@@ -559,6 +591,6 @@
 
 
 if __name__ == '__main__':
-    print(get_code_name("603042"))
+    print(get_free_listen_pos_count())
     print(get_name_code("鍗庤剦绉戞妧"))
     print(get_name_codes())

--
Gitblit v1.8.0