From 783f6b0c18272b7f9ee988664c4194ecc80e23a7 Mon Sep 17 00:00:00 2001
From: Administrator <admin@example.com>
Date: 星期四, 03 八月 2023 14:21:45 +0800
Subject: [PATCH] redis上级缓存添加

---
 trade/l2_trade_util.py |   69 ++++++++++++++++++----------------
 1 files changed, 36 insertions(+), 33 deletions(-)

diff --git a/trade/l2_trade_util.py b/trade/l2_trade_util.py
index 5517dbb..ee69f5b 100644
--- a/trade/l2_trade_util.py
+++ b/trade/l2_trade_util.py
@@ -36,58 +36,61 @@
 
 
 class BlackListCodeManager:
-    __redis_manager = redis_manager.RedisManager(2)
-    __forbidden_trade_codes_cache = set()
+    __instance = None
 
-    @classmethod
-    def __get_redis(cls):
-        return cls.__redis_manager.getRedis()
+    def __new__(cls, *args, **kwargs):
+        if not cls.__instance:
+            cls.__instance = super(BlackListCodeManager, cls).__new__(cls, *args, **kwargs)
+            # 鍒濆鍖栬缃�
+            # 鑾峰彇浜ゆ槗绐楀彛鐨勯攣
+            cls.__instance.__redis_manager = redis_manager.RedisManager(2)
+            cls.__instance.__forbidden_trade_codes_cache = RedisUtils.smembers(cls.__instance.__get_redis(),
+                                                                               "forbidden-trade-codes")
 
-    @classmethod
-    def add_code(cls, code):
-        cls.__forbidden_trade_codes_cache.add(code)
-        RedisUtils.sadd(cls.__get_redis(), "forbidden-trade-codes", code)
-        RedisUtils.expire(cls.__get_redis(), "forbidden-trade-codes", tool.get_expire())
+        return cls.__instance
 
-    @classmethod
-    def remove_code(cls, code):
-        cls.__forbidden_trade_codes_cache.discard(code)
-        RedisUtils.srem(cls.__get_redis(), "forbidden-trade-codes", code)
+    def __get_redis(self):
+        return self.__redis_manager.getRedis()
 
-    @classmethod
-    def is_in(cls, code):
-        return RedisUtils.sismember(cls.__get_redis(), "forbidden-trade-codes", code)
+    def add_code(self, code):
+        self.__forbidden_trade_codes_cache.add(code)
+        RedisUtils.sadd(self.__get_redis(), "forbidden-trade-codes", code)
+        RedisUtils.expire(self.__get_redis(), "forbidden-trade-codes", tool.get_expire())
 
-    @classmethod
-    def is_in_cache(cls, code):
-        return code in cls.__forbidden_trade_codes_cache
+    def remove_code(self, code):
+        self.__forbidden_trade_codes_cache.discard(code)
+        RedisUtils.srem(self.__get_redis(), "forbidden-trade-codes", code)
 
-    @classmethod
-    def list_codes(cls):
-        codes = RedisUtils.smembers(cls.__get_redis(), "forbidden-trade-codes")
-        cls.__forbidden_trade_codes_cache = codes
+    def is_in(self, code):
+        return RedisUtils.sismember(self.__get_redis(), "forbidden-trade-codes", code)
+
+    def is_in_cache(self, code):
+        return code in self.__forbidden_trade_codes_cache
+
+    def list_codes(self):
+        codes = RedisUtils.smembers(self.__get_redis(), "forbidden-trade-codes")
+        self.__forbidden_trade_codes_cache = codes
         return codes
 
-    @classmethod
-    def clear(cls):
-        cls.__forbidden_trade_codes_cache.clear()
-        RedisUtils.delete(cls.__get_redis(), "forbidden-trade-codes")
+    def clear(self):
+        self.__forbidden_trade_codes_cache.clear()
+        RedisUtils.delete(self.__get_redis(), "forbidden-trade-codes")
 
 
 #  鍒濆鍖栫姝氦鏄撲唬鐮佸簱
 def init_forbidden_trade_codes():
-    BlackListCodeManager.clear()
-    BlackListCodeManager.add_code("000000")
+    BlackListCodeManager().clear()
+    BlackListCodeManager().add_code("000000")
 
 
 # 绉婚櫎绂佹浜ゆ槗浠g爜
 def remove_from_forbidden_trade_codes(code):
-    BlackListCodeManager.remove_code(code)
+    BlackListCodeManager().remove_code(code)
 
 
 # 娣诲姞浠g爜鍒扮姝氦鏄�
 def add_to_forbidden_trade_codes(code):
-    BlackListCodeManager.add_code(code)
+    BlackListCodeManager().add_code(code)
 
 
 # 绂佹浠g爜浜ゆ槗
@@ -98,7 +101,7 @@
 
 
 def is_in_forbidden_trade_codes(code):
-    return BlackListCodeManager.is_in_cache(code)
+    return BlackListCodeManager().is_in_cache(code)
 
 
 if __name__ == "__main__":

--
Gitblit v1.8.0