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