From 43ede61c11064c2279889ca352fc6ec596f9f4d8 Mon Sep 17 00:00:00 2001 From: Administrator <admin@example.com> Date: 星期四, 24 八月 2023 16:31:50 +0800 Subject: [PATCH] 交易通道处理采用线程池 --- third_data/code_plate_key_manager.py | 54 ++++++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 40 insertions(+), 14 deletions(-) diff --git a/third_data/code_plate_key_manager.py b/third_data/code_plate_key_manager.py index b5c9398..74497b6 100644 --- a/third_data/code_plate_key_manager.py +++ b/third_data/code_plate_key_manager.py @@ -21,31 +21,54 @@ class KPLCodeJXBlockManager: __redisManager = redis_manager.RedisManager(3) __code_blocks = {} + # 澶囩敤 + __code_by_blocks = {} def __get_redis(self): return self.__redisManager.getRedis() - def save_jx_blocks(self, code, blocks): + def save_jx_blocks(self, code, blocks, by=False): if blocks is None: return + if len(blocks) > 2: + blocks = blocks[:2] + # 淇濆瓨鍓�2鏉℃暟鎹� - RedisUtils.setex(self.__get_redis(), f"kpl_jx_blocks-{code}", tool.get_expire(), json.dumps(blocks)) - self.__code_blocks[code] = blocks + if by: + RedisUtils.setex(self.__get_redis(), f"kpl_jx_blocks_by-{code}", tool.get_expire(), json.dumps(blocks)) + self.__code_by_blocks[code] = blocks + else: + RedisUtils.setex(self.__get_redis(), f"kpl_jx_blocks-{code}", tool.get_expire(), json.dumps(blocks)) + self.__code_blocks[code] = blocks # 鑾峰彇绮鹃�夋澘鍧� - def get_jx_blocks(self, code): - if code in self.__code_blocks: - return self.__code_blocks[code] - val = RedisUtils.get(self.__get_redis(), f"kpl_jx_blocks-{code}") - if val is None: - return None + def get_jx_blocks(self, code, by=False): + if by: + if code in self.__code_by_blocks: + return self.__code_by_blocks[code] + val = RedisUtils.get(self.__get_redis(), f"kpl_jx_blocks_by-{code}") + if val is None: + return None + else: + val = json.loads(val) + self.__code_by_blocks[code] = val + return self.__code_by_blocks[code] else: - val = json.loads(val) - self.__code_blocks[code] = val - return self.__code_blocks[code] + if code in self.__code_blocks: + return self.__code_blocks[code] + val = RedisUtils.get(self.__get_redis(), f"kpl_jx_blocks-{code}") + if val is None: + return None + else: + val = json.loads(val) + self.__code_blocks[code] = val + return self.__code_blocks[code] - def get_jx_blocks_cache(self, code): - return self.__code_blocks.get(code) + def get_jx_blocks_cache(self, code, by=False): + if by: + return self.__code_by_blocks.get(code) + else: + return self.__code_blocks.get(code) # 寮�鐩樺暒绂佹浜ゆ槗鏉垮潡绠$悊 @@ -364,7 +387,10 @@ k4 = set() jingxuan_blocks = self.__KPLCodeJXBlockManager.get_jx_blocks_cache(code) + if not jingxuan_blocks: + jingxuan_blocks = self.__KPLCodeJXBlockManager.get_jx_blocks_cache(code, by=True) if jingxuan_blocks: + jingxuan_blocks = jingxuan_blocks[:2] k4 |= set([x[1] for x in jingxuan_blocks]) for k in [k1, k11, k2, k3, k4]: keys |= k -- Gitblit v1.8.0