From ae29833d08b7e1433093286dba99a3277a8298d9 Mon Sep 17 00:00:00 2001
From: Administrator <admin@example.com>
Date: 星期五, 11 七月 2025 17:42:15 +0800
Subject: [PATCH] 测试

---
 code_attribute/limit_up_time_manager.py |   67 +++++++++++++++++++++------------
 1 files changed, 42 insertions(+), 25 deletions(-)

diff --git a/code_attribute/limit_up_time_manager.py b/code_attribute/limit_up_time_manager.py
index bfc838e..d1d4879 100644
--- a/code_attribute/limit_up_time_manager.py
+++ b/code_attribute/limit_up_time_manager.py
@@ -2,40 +2,57 @@
 """
 娑ㄥ仠鏃堕棿绠$悊鍣�
 """
-from db import redis_manager
-from db.redis_manager import RedisUtils
+from db import redis_manager_delegate as redis_manager
+from db.redis_manager_delegate import RedisUtils
 from utils import global_util, tool
 
-_redisManager = redis_manager.RedisManager(0)
 
+class LimitUpTimeManager:
+    __limit_up_time_cache = {}
+    __db = 0
+    _redisManager = redis_manager.RedisManager(0)
+    __instance = None
 
-def save_limit_up_time(code, time):
-    _time = get_limit_up_time(code)
-    if _time is None:
-        RedisUtils.setex(
-            _redisManager.getRedis(), "limit_up_time-{}".format(code), tool.get_expire(), time)
-        global_util.limit_up_time[code] = time
+    def __new__(cls, *args, **kwargs):
+        if not cls.__instance:
+            cls.__instance = super(LimitUpTimeManager, cls).__new__(cls, *args, **kwargs)
+            cls.load_limit_up_time()
+        return cls.__instance
 
+    @classmethod
+    def load_limit_up_time(cls):
+        redis = cls._redisManager.getRedis()
+        try:
+            keys = RedisUtils.keys(redis, "limit_up_time-*", auto_free=False)
+            for key in keys:
+                code = key.replace("limit_up_time-", "")
+                time_ = RedisUtils.get(redis, key, auto_free=False)
+                global_util.limit_up_time[code] = time_
+                tool.CodeDataCacheUtil.set_cache(cls.__limit_up_time_cache, code, time_)
+        finally:
+            RedisUtils.realse(redis)
 
-def get_limit_up_time(code):
-    time = global_util.limit_up_time.get(code)
-    if time is None:
-        time = RedisUtils.get(_redisManager.getRedis(), "limit_up_time-{}".format(code))
-        if time is not None:
+    def save_limit_up_time(self, code, time):
+        cache_result = tool.CodeDataCacheUtil.get_cache(self.__limit_up_time_cache, code)
+        if not cache_result[0] or cache_result[1] is None:
             global_util.limit_up_time[code] = time
+            tool.CodeDataCacheUtil.set_cache(self.__limit_up_time_cache, code, time)
+            RedisUtils.setex_async(
+                self.__db, "limit_up_time-{}".format(code), tool.get_expire(), time)
 
-    return time
+    def get_limit_up_time(self, code):
+        time = global_util.limit_up_time.get(code)
+        if time is None:
+            time = RedisUtils.get(self._redisManager.getRedis(), "limit_up_time-{}".format(code))
+            if time is not None:
+                global_util.limit_up_time[code] = time
+        return time
 
-
-def load_limit_up_time():
-    redis = _redisManager.getRedis()
-    try:
-        keys = RedisUtils.keys(redis, "limit_up_time-*", auto_free=False)
-        for key in keys:
-            code = key.replace("limit_up_time-", "")
-            global_util.limit_up_time[code] = RedisUtils.get(redis, key, auto_free=False)
-    finally:
-        redis.connection_pool.disconnect()
+    def get_limit_up_time_cache(self, code):
+        cache_result = tool.CodeDataCacheUtil.get_cache(self.__limit_up_time_cache, code)
+        if cache_result[0]:
+            return cache_result[1]
+        return None
 
 
 if __name__ == "__main__":

--
Gitblit v1.8.0