From 6b77c1709908133c040778f5f775432c4ce7efd7 Mon Sep 17 00:00:00 2001
From: Administrator <admin@example.com>
Date: 星期五, 09 六月 2023 19:08:44 +0800
Subject: [PATCH] 优化L2卡位分配/增加想买单第一时间加入L2卡位

---
 gpcode_manager.py |   51 ++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 48 insertions(+), 3 deletions(-)

diff --git a/gpcode_manager.py b/gpcode_manager.py
index 5a81745..2779d2a 100644
--- a/gpcode_manager.py
+++ b/gpcode_manager.py
@@ -173,6 +173,39 @@
     @classmethod
     def add_code(cls, code):
         cls.__get_redis().sadd(cls.__redis_key, code)
+        cls.__get_redis().expire(cls.__redis_key, tool.get_expire())
+
+    @classmethod
+    def remove_code(cls, code):
+        cls.__get_redis().srem(cls.__redis_key, code)
+
+    @classmethod
+    def is_in(cls, code):
+        return cls.__get_redis().sismember(cls.__redis_key, code)
+
+    @classmethod
+    def list_code(cls):
+        return cls.__get_redis().smembers(cls.__redis_key)
+
+
+# 鏆傚仠涓嬪崟浠g爜绠$悊
+# 涓庨粦鍚嶅崟鐨勫尯鍒槸鏆傚仠浜ゆ槗浠g爜鍙槸涓嶄氦鏄擄紝涓嶈兘绉婚櫎L2鐩戞帶浣�
+class PauseBuyCodesManager:
+    redisManager = redis_manager.RedisManager(0)
+    __redis_key = "pause_buy_codes"
+
+    @classmethod
+    def __get_redis(cls):
+        return cls.redisManager.getRedis()
+
+    @classmethod
+    def clear(cls):
+        cls.__get_redis().delete(cls.__redis_key)
+
+    @classmethod
+    def add_code(cls, code):
+        cls.__get_redis().sadd(cls.__redis_key, code)
+        cls.__get_redis().expire(cls.__redis_key, tool.get_expire())
 
     @classmethod
     def remove_code(cls, code):
@@ -289,11 +322,21 @@
     return code
 
 
+# 浠g爜鍚嶅瓧缂撳瓨
+__code_name_dict = {}
+
+
+# 鑾峰彇浠g爜鐨勫悕绉�
 def get_code_name(code):
+    if code in __code_name_dict:
+        return __code_name_dict.get(code)
     name = CodesNameManager.get_second_code_name(code)
     if name is not None:
+        __code_name_dict[code] = name
         return name
     name = CodesNameManager.get_first_code_name(code)
+    if name:
+        __code_name_dict[code] = name
     return name
 
 
@@ -541,9 +584,11 @@
     if available_positions:
         # 鑾峰彇鍋ュ悍鐘舵��
         available_positions_health_states = l2_listen_pos_health_manager.list_health_state(available_positions)
-        available_positions.sort(key=lambda x: available_positions_health_states[x], reverse=True)
+        # 灏介噺涓嶅垎閰嶇涓�涓綅缃�
+        available_positions_new = sorted(available_positions, key=lambda x: (available_positions_health_states[x], 0 if x[1] ==0 else 1), reverse=True)
+        # available_positions.sort(key=lambda x: available_positions_health_states[x], reverse=True)
         # 鍙栫1涓暟鎹�
-        return available_positions[0][0], available_positions[0][1]
+        return available_positions_new[0][0], available_positions_new[0][1]
 
     return None, None
 
@@ -636,4 +681,4 @@
 
 
 if __name__ == '__main__':
-    set_price_pre("601858", 27.67)
+    get_can_listen_pos()

--
Gitblit v1.8.0