From 58a0f47d761719baf5fb48b17647f29ed642ed2c Mon Sep 17 00:00:00 2001 From: Administrator <admin@example.com> Date: 星期二, 29 八月 2023 12:20:25 +0800 Subject: [PATCH] L1目标代码增加到200个数据 --- code_attribute/gpcode_first_screen_manager.py | 43 ++++++++++++++++++++++++++++++------------- 1 files changed, 30 insertions(+), 13 deletions(-) diff --git a/code_attribute/gpcode_first_screen_manager.py b/code_attribute/gpcode_first_screen_manager.py index 5bc3366..c56e69c 100644 --- a/code_attribute/gpcode_first_screen_manager.py +++ b/code_attribute/gpcode_first_screen_manager.py @@ -5,9 +5,9 @@ # 璁剧疆棣栨澘鏈瓫閫夌殑鐩爣绁� import json -from db.redis_manager import RedisUtils +from db.redis_manager_delegate import RedisUtils from utils import tool -from db import redis_manager +from db import redis_manager_delegate as redis_manager from third_data import block_info __redisManager = redis_manager.RedisManager(0) @@ -17,6 +17,9 @@ return __redisManager.getRedis() +__first_code_data_cache = {} + + # 淇濆瓨棣栨澘绁ㄧ殑鏁版嵁 # 1.棣栨娑ㄥ仠鏃堕棿 # 2.鏈�杩戞定鍋滄椂闂� @@ -24,6 +27,7 @@ # 4.鏈�杩戠偢寮�鏃堕棿 # 5.鏄惁宸茬粡娑ㄥ仠 def __save_first_code_data(code, data): + tool.CodeDataCacheUtil.set_cache(__first_code_data_cache, code, data) RedisUtils.setex(__redisManager.getRedis(), f"first_code_data-{code}", tool.get_expire(), json.dumps(data)) @@ -34,25 +38,39 @@ return json.loads(val) +def __get_first_code_data_cache(code): + cache_result = tool.CodeDataCacheUtil.get_cache(__first_code_data_cache, code) + if cache_result[0]: + return cache_result[1] + val = __get_first_code_data(code) + tool.CodeDataCacheUtil.set_cache(__first_code_data_cache, code, val) + return val + + # 娣诲姞杩涢鏉挎湭绛涢�夌エ def __add_first_no_screen_codes(codes): redis = __redisManager.getRedis() - if codes: - for code in codes: - RedisUtils.sadd(redis, "first_no_screen_codes", code) - RedisUtils.expire(redis, "first_no_screen_codes", tool.get_expire()) + try: + if codes: + for code in codes: + RedisUtils.sadd(redis, "first_no_screen_codes", code, auto_free=False) + RedisUtils.expire(redis, "first_no_screen_codes", tool.get_expire(), auto_free=False) + finally: + RedisUtils.realse(redis) def clear_first_no_screen_codes(): - redis = __redisManager.getRedis() - RedisUtils.delete(redis, "first_no_screen_codes") + RedisUtils.delete(__redisManager.getRedis(), "first_no_screen_codes") def __remove_first_no_screen_codes(codes): redis = __redisManager.getRedis() - if codes: - for code in codes: - RedisUtils.srem(redis, "first_no_screen_codes", code) + try: + if codes: + for code in codes: + RedisUtils.srem(redis, "first_no_screen_codes", code, auto_free= False) + finally: + RedisUtils.realse(redis) def __get_first_no_screen_codes(): @@ -67,7 +85,7 @@ for price in prices: code = price["code"] time_ = price["time"] - old_data = __get_first_code_data(code) + old_data = __get_first_code_data_cache(code) if old_data is None: continue limit_up = price["limit_up"] @@ -134,7 +152,6 @@ return True, "鐐告澘鍚庯紝60鍒嗛挓鍐呴兘鏈洖灏�" if now_rate <= 6: return True, "鐐告澘鍚庯紝娑ㄥ箙灏忎簬6%" - # TODO 鏄惁鏈夊悓姒傚康鐨勭エ宸茬粡涔板叆鎴愬姛 blocks = block_info.get_code_blocks(code) if blocks and len(blocks) == 1: codes = block_info.get_block_codes(blocks[0]) -- Gitblit v1.8.0