Administrator
2023-08-03 783f6b0c18272b7f9ee988664c4194ecc80e23a7
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")
# 移除禁止交易代码
def remove_from_forbidden_trade_codes(code):
    BlackListCodeManager.remove_code(code)
    BlackListCodeManager().remove_code(code)
# 添加代码到禁止交易
def add_to_forbidden_trade_codes(code):
    BlackListCodeManager.add_code(code)
    BlackListCodeManager().add_code(code)
# 禁止代码交易
@@ -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__":