From 90886c62a62ecbd64c9b229b48e4ef2cf600ae43 Mon Sep 17 00:00:00 2001 From: Administrator <admin@example.com> Date: 星期四, 03 八月 2023 16:34:21 +0800 Subject: [PATCH] redis上级缓存添加 --- code_attribute/gpcode_manager.py | 384 +++++++++++++++++++++++++++++++++--------------------- 1 files changed, 236 insertions(+), 148 deletions(-) diff --git a/code_attribute/gpcode_manager.py b/code_attribute/gpcode_manager.py index d699ad4..3c53c02 100644 --- a/code_attribute/gpcode_manager.py +++ b/code_attribute/gpcode_manager.py @@ -6,6 +6,7 @@ import constant from db import redis_manager +from db.redis_manager import RedisUtils from utils import tool import decimal @@ -16,6 +17,7 @@ class CodesNameManager: redisManager = redis_manager.RedisManager(0) + __gp_list_names_first_cache = [] @classmethod def __get_redis(cls): @@ -36,15 +38,15 @@ @classmethod def list_first_code_name_dict(cls): - val = cls.__get_redis().get("gp_list_names_first") + val = RedisUtils.get(cls.__get_redis(), "gp_list_names_first") if val is not None: val = json.loads(val) return val return None @classmethod - def list_second_code_name_dict(cls): - val = cls.__get_redis().get("gp_list_names") + def list_first_code_name_dict_cache(cls): + val = RedisUtils.get(cls.__get_redis(), "gp_list_names_first") if val is not None: val = json.loads(val) return val @@ -52,7 +54,7 @@ @classmethod def get_first_code_name(cls, code): - val = cls.__get_redis().get("gp_list_names_first") + val = RedisUtils.get(cls.__get_redis(), "gp_list_names_first") if not val: return None val = json.loads(val) @@ -62,8 +64,43 @@ return None @classmethod + def get_first_name_code(cls, name): + val = RedisUtils.get(cls.__get_redis(), "gp_list_names_first") + if not val: + return None + val = json.loads(val) + return val.get(name) + + @classmethod + def add_first_code_name(cls, code, name): + val = RedisUtils.get(cls.__get_redis(), "gp_list_names_first") + if not val: + return None + val = json.loads(val) + val[name] = code + cls.set_first_code_names(val) + + # 璁剧疆棣栨澘浠g爜鍚嶇О + @classmethod + def set_first_code_names(cls, datas): + RedisUtils.set(cls.__get_redis(), "gp_list_names_first", json.dumps(datas)) + + # 鍒犻櫎棣栨澘浠g爜鍚嶇О + @classmethod + def clear_first_code_names(cls): + RedisUtils.delete(cls.__get_redis(), "gp_list_names_first") + + @classmethod + def list_second_code_name_dict(cls): + val = RedisUtils.get(cls.__get_redis(), "gp_list_names") + if val is not None: + val = json.loads(val) + return val + return None + + @classmethod def get_second_code_name(cls, code): - val = cls.__get_redis().get("gp_list_names") + val = RedisUtils.get(cls.__get_redis(), "gp_list_names") if not val: return None val = json.loads(val) @@ -72,118 +109,134 @@ return k @classmethod - def get_first_name_code(cls, name): - val = cls.__get_redis().get("gp_list_names_first") - if not val: - return None - val = json.loads(val) - 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") + val = RedisUtils.get(cls.__get_redis(), "gp_list_names") if not val: return None val = json.loads(val) return val.get(name) - - # 璁剧疆棣栨澘浠g爜鍚嶇О - @classmethod - def set_first_code_names(cls, datas): - cls.__get_redis().set("gp_list_names_first", json.dumps(datas)) # 璁剧疆浜屾澘浠g爜鍚嶇О @classmethod def set_second_code_names(cls, datas): - cls.__get_redis().set("gp_list_names", json.dumps(datas)) - - # 鍒犻櫎棣栨澘浠g爜鍚嶇О - @classmethod - def clear_first_code_names(cls): - cls.__get_redis().delete("gp_list_names_first") + RedisUtils.set(cls.__get_redis(), "gp_list_names", json.dumps(datas)) # 璁剧疆浜屾澘浠g爜鍚嶇О @classmethod def clear_second_code_names(cls): - cls.__get_redis().delete("gp_list_names") + RedisUtils.delete(cls.__get_redis(), "gp_list_names") # 棣栨澘浠g爜绠$悊 class FirstCodeManager: - redisManager = redis_manager.RedisManager(0) + __instance = None - @classmethod - def __get_redis(cls): - return cls.redisManager.getRedis() + def __new__(cls, *args, **kwargs): + if not cls.__instance: + cls.__instance = super(FirstCodeManager, cls).__new__(cls, *args, **kwargs) + # 鍒濆鍖栬缃� + # 鑾峰彇浜ゆ槗绐楀彛鐨勯攣 + cls.__instance.redisManager = redis_manager.RedisManager(0) + cls.__instance.__first_code_record_cache = RedisUtils.smembers(cls.__instance.__get_redis(), + "first_code_record") + cls.__instance.__first_code_limited_up_record_cache = RedisUtils.smembers(cls.__instance.__get_redis(), + "first_code_limited_up_record") + return cls.__instance + + def __get_redis(self): + return self.redisManager.getRedis() # 鍔犲叆棣栨澘鍘嗗彶璁板綍 - @classmethod - def add_record(cls, codes): + def add_record(self, codes): + hasChanged = False for code in codes: - cls.__get_redis().sadd("first_code_record", code) - cls.__get_redis().expire("first_code_record", tool.get_expire()) + if code not in self.__first_code_record_cache: + RedisUtils.sadd(self.__get_redis(), "first_code_record", code) + hasChanged = True + self.__first_code_record_cache.add(code) + if hasChanged: + RedisUtils.expire(self.__get_redis(), "first_code_record", tool.get_expire()) - @classmethod - def is_in_first_record(cls, code): - if cls.__get_redis().sismember("first_code_record", code): + def is_in_first_record(self, code): + if RedisUtils.sismember(self.__get_redis(), "first_code_record", code): return True else: return False + + def is_in_first_record_cache(self, code): + return code in self.__first_code_record_cache # 鍔犲叆棣栨澘娑ㄥ仠杩囦唬鐮侀泦鍚� - @classmethod - def add_limited_up_record(cls, codes): + def add_limited_up_record(self, codes): + hasChanged = False for code in codes: - cls.__get_redis().sadd("first_code_limited_up_record", code) - cls.__get_redis().expire("first_code_limited_up_record", tool.get_expire()) + if code not in self.__first_code_limited_up_record_cache: + RedisUtils.sadd(self.__get_redis(), "first_code_limited_up_record", code) + hasChanged = True + self.__first_code_limited_up_record_cache.add(code) + if hasChanged: + RedisUtils.expire(self.__get_redis(), "first_code_limited_up_record", tool.get_expire()) # 鏄惁娑ㄥ仠杩� - @classmethod - def is_limited_up(cls, code): - if cls.__get_redis().sismember("first_code_limited_up_record", code): + def is_limited_up(self, code): + if RedisUtils.sismember(self.__get_redis(), "first_code_limited_up_record", code): return True else: return False + + def is_limited_up_cache(self, code): + return code in self.__first_code_limited_up_record_cache # 鎯宠涔扮殑浠g爜 class WantBuyCodesManager: - redisManager = redis_manager.RedisManager(0) - __redis_key = "want_buy_codes" + __instance = None - @classmethod - def __get_redis(cls): - return cls.redisManager.getRedis() + def __new__(cls, *args, **kwargs): + if not cls.__instance: + cls.__instance = super(WantBuyCodesManager, cls).__new__(cls, *args, **kwargs) + # 鍒濆鍖栬缃� + # 鑾峰彇浜ゆ槗绐楀彛鐨勯攣 + cls.__instance.redisManager = redis_manager.RedisManager(0) + cls.__instance.__redis_key = "want_buy_codes" + cls.__instance.__want_buy_codes_cache = RedisUtils.smembers(cls.__instance.__get_redis(), + cls.__instance.__redis_key) + return cls.__instance - @classmethod - def clear(cls): - cls.__get_redis().delete(cls.__redis_key) + __want_buy_codes_cache = set() - @classmethod - def add_code(cls, code): - cls.__get_redis().sadd(cls.__redis_key, code) - cls.__get_redis().expire(cls.__redis_key, tool.get_expire()) + def __get_redis(self): + return self.redisManager.getRedis() - @classmethod - def remove_code(cls, code): - cls.__get_redis().srem(cls.__redis_key, code) + def clear(self): + RedisUtils.delete(self.__get_redis(), self.__redis_key) - @classmethod - def is_in(cls, code): - return cls.__get_redis().sismember(cls.__redis_key, code) + def add_code(self, code): + self.__want_buy_codes_cache.add(code) + RedisUtils.sadd(self.__get_redis(), self.__redis_key, code) + RedisUtils.expire(self.__get_redis(), self.__redis_key, tool.get_expire()) - @classmethod - def list_code(cls): - return cls.__get_redis().smembers(cls.__redis_key) + def remove_code(self, code): + self.__want_buy_codes_cache.discard(code) + RedisUtils.srem(self.__get_redis(), self.__redis_key, code) + + def sync(self): + self.__want_buy_codes_cache.clear() + codes = RedisUtils.smembers(self.__get_redis(), self.__redis_key) + if codes: + self.__want_buy_codes_cache += set(codes) + + def is_in(self, code): + return RedisUtils.sismember(self.__get_redis(), self.__redis_key, code) + + def is_in_cache(self, code): + return code in self.__want_buy_codes_cache + + def list_code(self): + return RedisUtils.smembers(self.__get_redis(), self.__redis_key) + + def list_code_cache(self): + return self.__want_buy_codes_cache # 鏆傚仠涓嬪崟浠g爜绠$悊 @@ -198,24 +251,24 @@ @classmethod def clear(cls): - cls.__get_redis().delete(cls.__redis_key) + RedisUtils.delete(cls.__get_redis(), 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()) + RedisUtils.sadd(cls.__get_redis(), cls.__redis_key, code) + RedisUtils.expire(cls.__get_redis(), cls.__redis_key, tool.get_expire()) @classmethod def remove_code(cls, code): - cls.__get_redis().srem(cls.__redis_key, code) + RedisUtils.srem(cls.__get_redis(), cls.__redis_key, code) @classmethod def is_in(cls, code): - return cls.__get_redis().sismember(cls.__redis_key, code) + return RedisUtils.sismember(cls.__get_redis(), cls.__redis_key, code) @classmethod def list_code(cls): - return cls.__get_redis().smembers(cls.__redis_key) + return RedisUtils.smembers(cls.__get_redis(), cls.__redis_key) def __parse_codes_data(code_datas): @@ -239,10 +292,10 @@ codes, name_codes = __parse_codes_data(code_datas) redis_instance = __redisManager.getRedis() # 鍒犻櫎涔嬪墠鐨� - redis_instance.delete("gp_list") + RedisUtils.delete(redis_instance, "gp_list") CodesNameManager.clear_second_code_names() for d in codes: - redis_instance.sadd("gp_list", d) + RedisUtils.sadd(redis_instance, "gp_list", d) CodesNameManager.set_second_code_names(name_codes) @@ -253,7 +306,7 @@ redis_instance = __redisManager.getRedis() codes, name_codes = __parse_codes_data(code_datas) for d in codes: - redis_instance.sadd("gp_list", d) + RedisUtils.sadd(redis_instance, "gp_list", d) old_name_codes = CodesNameManager.list_second_code_name_dict() if old_name_codes is None: old_name_codes = name_codes @@ -261,6 +314,9 @@ for key in name_codes: old_name_codes[key] = name_codes[key] CodesNameManager.set_second_code_names(old_name_codes) + + +__gp_list_first_codes_cache = set() # -------------------------------棣栨澘浠g爜绠$悊------------------------------- @@ -272,16 +328,21 @@ codes_set = set() for code in codes: codes_set.add(code) - old_codes_set = redis_instance.smembers("gp_list_first") + old_codes_set = __gp_list_first_codes_cache if old_codes_set is None: old_codes_set = set() del_set = old_codes_set - codes_set add_codes = codes_set - old_codes_set for code in add_codes: - redis_instance.sadd("gp_list_first", code) + RedisUtils.sadd(redis_instance, "gp_list_first", code) for code in del_set: - redis_instance.srem("gp_list_first", code) - redis_instance.expire("gp_list_first", tool.get_expire()) + RedisUtils.srem(redis_instance, "gp_list_first", code) + if add_codes or del_set: + RedisUtils.expire(redis_instance, "gp_list_first", tool.get_expire()) + # 鏇存柊缂撳瓨 + __gp_list_first_codes_cache.clear() + for code in codes_set: + __gp_list_first_codes_cache.add(code) old_name_codes = CodesNameManager.list_first_code_name_dict() if old_name_codes is None: @@ -296,19 +357,19 @@ def remove_first_gp_code(codes): redis_instance = __redisManager.getRedis() for code in codes: - redis_instance.srem("gp_list_first", code) + RedisUtils.srem(redis_instance, "gp_list_first", code) # 鑾峰彇棣栨澘浠g爜 def get_first_gp_codes(): redis_instance = __redisManager.getRedis() - return redis_instance.smembers("gp_list_first") + return RedisUtils.smembers(redis_instance, "gp_list_first") # 鏄惁鍦ㄩ鏉块噷闈� def is_in_first_gp_codes(code): redis_instance = __redisManager.getRedis() - return redis_instance.sismember("gp_list_first", code) + return RedisUtils.sismember(redis_instance, "gp_list_first", code) # 鑾峰彇鍚嶇О瀵瑰簲鐨勪唬鐮� @@ -349,33 +410,34 @@ # 鑾峰彇鍩烘湰淇℃伅 redis_instance = __redisManager.getRedis() # 鍒犻櫎涔嬪墠鐨� - redis_instance.delete("gp_limit_up_list") + RedisUtils.delete(redis_instance, "gp_limit_up_list") for d in gpset: - redis_instance.sadd("gp_limit_up_list", json.dumps(d)) - redis_instance.expire("gp_limit_up_list", tool.get_expire()) - redis_instance.setex("gp_limit_up_list_update_time", tool.get_expire(), round(time.time() * 1000)) + RedisUtils.sadd(redis_instance, "gp_limit_up_list", json.dumps(d)) + RedisUtils.expire(redis_instance, "gp_limit_up_list", tool.get_expire()) + RedisUtils.setex(redis_instance, "gp_limit_up_list_update_time", tool.get_expire(), round(time.time() * 1000)) # 鑾峰彇娑ㄥ仠鍒楄〃 def get_limit_up_list(): redis_instance = __redisManager.getRedis() - return redis_instance.get("gp_limit_up_list_update_time"), redis_instance.smembers("gp_limit_up_list") + return RedisUtils.get(redis_instance, "gp_limit_up_list_update_time"), RedisUtils.smembers(redis_instance, + "gp_limit_up_list") def rm_gp(code): redis_instance = __redisManager.getRedis() - redis_instance.srem("gp_list", code) + RedisUtils.srem(redis_instance, "gp_list", code) remove_first_gp_code([code]) def is_in_gp_pool(code): redis_instance = __redisManager.getRedis() - return redis_instance.sismember("gp_list", code) or is_in_first_gp_codes(code) + return RedisUtils.sismember(redis_instance, "gp_list", code) or is_in_first_gp_codes(code) def get_gp_list(): redis_instance = __redisManager.getRedis() - codes = redis_instance.smembers("gp_list") + codes = RedisUtils.smembers(redis_instance, "gp_list") first_codes = get_first_gp_codes() return set.union(codes, first_codes) @@ -383,7 +445,7 @@ # 鑾峰彇浜屾澘浠g爜 def get_second_gp_list(): redis_instance = __redisManager.getRedis() - codes = redis_instance.smembers("gp_list") + codes = RedisUtils.smembers(redis_instance, "gp_list") return codes @@ -399,22 +461,38 @@ return list -# 鑾峰彇鏀剁洏浠� -def get_price_pre(code): - redis_instance = __redisManager.getRedis() - result = redis_instance.get("price-pre-{}".format(code)) - if result is not None: - return float(result) - return None +class CodePrePriceManager: + __price_pre_cache = {} + __redisManager = redis_manager.RedisManager(0) + # 鑾峰彇鏀剁洏浠� + @classmethod + def get_price_pre(cls, code): + redis_instance = cls.__redisManager.getRedis() + result = RedisUtils.get(redis_instance, "price-pre-{}".format(code)) + if result is not None: + return float(result) + return None -# 璁剧疆鏀剁洏浠� -def set_price_pre(code, price, force=False): - codes = get_gp_list() - if code not in codes and not FirstCodeManager.is_in_first_record(code) and not force: - return - redis_instance = __redisManager.getRedis() - redis_instance.setex("price-pre-{}".format(code), tool.get_expire(), str(price)) + # 鑾峰彇缂撳瓨 + @classmethod + def get_price_pre_cache(cls, code): + if code in cls.__price_pre_cache: + return float(cls.__price_pre_cache[code]) + val = cls.get_price_pre(code) + if val: + cls.__price_pre_cache[code] = val + return val + + # 璁剧疆鏀剁洏浠� + @classmethod + def set_price_pre(cls, code, price, force=False): + codes = get_gp_list() + if code not in codes and not FirstCodeManager().is_in_first_record_cache(code) and not force: + return + redis_instance = cls.__redisManager.getRedis() + RedisUtils.setex(redis_instance, "price-pre-{}".format(code), tool.get_expire(), str(price)) + cls.__price_pre_cache[code] = float(price) __limit_up_price_dict = {} @@ -425,7 +503,7 @@ # 璇诲彇鍐呭瓨涓殑鍊� if code in __limit_up_price_dict: return __limit_up_price_dict[code] - price = get_price_pre(code) + price = CodePrePriceManager.get_price_pre_cache(code) if price is None: return None limit_up_price = tool.to_price(decimal.Decimal(str(price)) * decimal.Decimal("1.1")) @@ -441,7 +519,7 @@ # 鑾峰彇璺屽仠浠� def get_limit_down_price(code): - price = get_price_pre(code) + price = CodePrePriceManager.get_price_pre_cache(code) if price is None: return None return tool.to_price(decimal.Decimal(str(price)) * decimal.Decimal("0.9")) @@ -450,25 +528,31 @@ # 鑾峰彇鐜颁环 def get_price(code): redis_instance = __redisManager.getRedis() - result = redis_instance.get("price-{}".format(code)) + result = RedisUtils.get(redis_instance, "price-{}".format(code)) if result is not None: return float(result) return None +__current_price_cache = {} + + # 璁剧疆鐜颁环 def set_price(code, price): + if code in __current_price_cache and __current_price_cache[code] == price: + return + __current_price_cache[code] = price redis_instance = __redisManager.getRedis() - redis_instance.setex("price-{}".format(code), tool.get_expire(), price) + RedisUtils.setex(redis_instance, "price-{}".format(code), tool.get_expire(), price) # 鑾峰彇姝e湪鐩戝惉鐨勪唬鐮� def get_listen_codes(): redis_instance = __redisManager.getRedis() - keys = redis_instance.keys("listen_code-*-*") + keys = RedisUtils.keys(redis_instance, "listen_code-*-*") codes = set() for k in keys: - code = redis_instance.get(k) + code = RedisUtils.get(redis_instance, k) if code is not None and len(code) > 0: codes.add(code) return codes @@ -478,7 +562,7 @@ def get_listen_code_by_pos(client_id, pos): redis_instance = __redisManager.getRedis() key = "listen_code-{}-{}".format(client_id, pos) - value = redis_instance.get(key) + value = RedisUtils.get(redis_instance, key) # print("redis:", key,value) return value @@ -486,7 +570,7 @@ # 璁剧疆浣嶇疆鐨勭洃鍚唬鐮� def set_listen_code_by_pos(client_id, pos, code): redis_instance = __redisManager.getRedis() - redis_instance.setex("listen_code-{}-{}".format(client_id, pos), tool.get_expire(), code) + RedisUtils.setex(redis_instance, "listen_code-{}-{}".format(client_id, pos), tool.get_expire(), code) # 鍚屾鐩戝惉鐨勪唬鐮侀泦鍚� __sync_listen_codes_pos() @@ -495,55 +579,55 @@ def __sync_listen_codes_pos(): redis_instance = __redisManager.getRedis() # 鑾峰彇宸茬粡姝e湪鐩戝惉鐨勪唬鐮� - keys = redis_instance.keys("code_listen_pos-*") + keys = RedisUtils.keys(redis_instance, "code_listen_pos-*") codes_set = set() for key in keys: codes_set.add(key.replace("code_listen_pos-", "")) - keys = redis_instance.keys("listen_code-*-*") + keys = RedisUtils.keys(redis_instance, "listen_code-*-*") for key in keys: - result = redis_instance.get(key) + result = RedisUtils.get(redis_instance, key) if result: # 绉婚櫎闇�瑕佹坊鍔犵殑浠g爜 codes_set.discard(result) client_id_, pos_, code_ = int(key.split("-")[1]), int(key.split("-")[2]), result key_ = "code_listen_pos-{}".format(code_) - val = redis_instance.get(key_) + val = RedisUtils.get(redis_instance, key_) if val is None: - redis_instance.setex(key_, tool.get_expire(), json.dumps((client_id_, pos_))) + RedisUtils.setex(redis_instance, key_, tool.get_expire(), json.dumps((client_id_, pos_))) else: val = json.loads(val) if val[0] != client_id_ or val[1] != pos_: - redis_instance.setex(key_, tool.get_expire(), json.dumps((client_id_, pos_))) + RedisUtils.setex(redis_instance, key_, tool.get_expire(), json.dumps((client_id_, pos_))) # 绉婚櫎娌℃湁鐩戝惉鐨勪唬鐮� for code_ in codes_set: - redis_instance.delete(code_) + RedisUtils.delete(redis_instance, code_) # 鍒濆鍖栦綅缃� def init_listen_code_by_pos(client_id, pos): redis_instance = __redisManager.getRedis() key = "listen_code-{}-{}".format(client_id, pos) - redis_instance.setnx(key, "") - redis_instance.expire(key, tool.get_expire()) + RedisUtils.setnx(redis_instance, key, "") + RedisUtils.expire(redis_instance, key, tool.get_expire()) # 娓呴櫎鎵�鏈夌洃鍚唬鐮� def clear_listen_codes(): redis_instance = __redisManager.getRedis() - keys = redis_instance.keys("listen_code-*-*") + keys = RedisUtils.keys(redis_instance, "listen_code-*-*") for key in keys: - redis_instance.setex(key, tool.get_expire(), "") + RedisUtils.setex(redis_instance, 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") + RedisUtils.delete(redis_instance, "gp_list_first") + RedisUtils.delete(redis_instance, "gp_list_names_first") + RedisUtils.delete(redis_instance, "first_code_record") + RedisUtils.delete(redis_instance, "first_code_limited_up_record") # 鑾峰彇鍙互鎿嶄綔鐨勪綅缃� @@ -558,14 +642,14 @@ for client_id in client_ids: redis_instance = __redisManager.getRedis() k = "listen_code-{}-*".format(client_id) - keys = redis_instance.keys(k) + keys = RedisUtils.keys(redis_instance, k) # random.shuffle(keys) codes = [] for key in keys: index = key.split("-")[-1] if int(index) + 1 > constant.L2_CODE_COUNT_PER_DEVICE: continue - result = redis_instance.get(key) + result = RedisUtils.get(redis_instance, key) if result is None or len(result) == 0: available_positions.append((client_id, int(key.replace("listen_code-{}-".format(client_id), "")))) else: @@ -583,7 +667,9 @@ # 鑾峰彇鍋ュ悍鐘舵�� available_positions_health_states = l2_listen_pos_health_manager.list_health_state(available_positions) # 灏介噺涓嶅垎閰嶇涓�涓綅缃� - 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_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_new[0][0], available_positions_new[0][1] @@ -598,9 +684,9 @@ for client_id in client_ids: redis_instance = __redisManager.getRedis() k = "listen_code-{}-*".format(client_id) - keys = redis_instance.keys(k) + keys = RedisUtils.keys(redis_instance, k) for key in keys: - code = redis_instance.get(key) + code = RedisUtils.get(redis_instance, key) if not code: free_count += 1 return free_count @@ -609,7 +695,7 @@ # 鑾峰彇姝e湪鐩戝惉鐨勪唬鐮佺殑浣嶇疆 def get_listen_code_pos(code): redis_instance = __redisManager.getRedis() - val = redis_instance.get("code_listen_pos-{}".format(code)) + val = RedisUtils.get(redis_instance, "code_listen_pos-{}".format(code)) if val is None: return None, None val = json.loads(val) @@ -625,7 +711,7 @@ # 鏄惁姝e湪鐩戝惉 def is_listen(code): redis_instance = __redisManager.getRedis() - val = redis_instance.get("code_listen_pos-{}".format(code)) + val = RedisUtils.get(redis_instance, "code_listen_pos-{}".format(code)) if val is None: return False else: @@ -649,33 +735,35 @@ # 鏄惁姝e湪鎿嶄綔 def is_operate(code): redis_instance = __redisManager.getRedis() - return redis_instance.get("gp_operate-{}".format(code)) is not None + return RedisUtils.get(redis_instance, "gp_operate-{}".format(code)) is not None # 璁剧疆姝e湪鎿嶄綔鐨勪唬鐮� def set_operate(code): redis_instance = __redisManager.getRedis() - redis_instance.setex("gp_operate-{}".format(code), 30, "1") + RedisUtils.setex( + redis_instance, "gp_operate-{}".format(code), 30, "1") # 鎵归噺璁剧疆姝e湪鎿嶄綔鐨勪唬鐮� def set_operates(codes): redis_instance = __redisManager.getRedis() for code in codes: - redis_instance.setex("gp_operate-{}".format(code), 30, "1") + RedisUtils.setex( + redis_instance, "gp_operate-{}".format(code), 30, "1") # 绉婚櫎姝e湪鎿嶄綔鐨勪唬鐮� def rm_operate(code): redis_instance = __redisManager.getRedis() - redis_instance.delete("gp_operate-{}".format(code)) + RedisUtils.delete(redis_instance, "gp_operate-{}".format(code)) # 鎵归噺绉婚櫎姝e湪鎿嶄綔鐨勪唬鐮� def rm_operates(codes): redis_instance = __redisManager.getRedis() for code in codes: - redis_instance.delete("gp_operate-{}".format(code)) + RedisUtils.delete(redis_instance, "gp_operate-{}".format(code)) if __name__ == '__main__': -- Gitblit v1.8.0