From 5cee7bf7c66c30f9aac4569c22fd741a12e46f8a Mon Sep 17 00:00:00 2001 From: ManyManyTomato <93612024+ATTomatoo@users.noreply.github.com> Date: Sat, 5 Jul 2025 10:59:02 +0000 Subject: [PATCH] =?UTF-8?q?=E6=A0=BC=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- zhenxun/services/cache.py | 29 ++++++++++++++--------------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/zhenxun/services/cache.py b/zhenxun/services/cache.py index 8c5fa820..a7592983 100644 --- a/zhenxun/services/cache.py +++ b/zhenxun/services/cache.py @@ -1,15 +1,14 @@ +import inspect from collections.abc import Callable from datetime import datetime from functools import wraps -import inspect from typing import Any, ClassVar, Generic, TypeVar +import nonebot from aiocache import Cache as AioCache - # from aiocache.backends.redis import RedisCache from aiocache.base import BaseCache from aiocache.serializers import JsonSerializer -import nonebot from nonebot.compat import model_dump from nonebot.utils import is_coroutine_callable from pydantic import BaseModel, PrivateAttr @@ -208,7 +207,7 @@ class CacheData(BaseModel): async def get_data(self) -> Any: """从缓存获取数据""" try: - data = await self._cache.get(self.name) + data = await self._cache.get(self.name)# type: ignore logger.debug(f"获取缓存 {self.name} 数据: {data}") # 如果数据为空,尝试重新加载 @@ -307,11 +306,11 @@ class CacheData(BaseModel): logger.debug(f"设置缓存 {self.name} 序列化后数据: {serialized_value}") # 2. 删除旧数据 - await self._cache.delete(self.name) + await self._cache.delete(self.name)# type: ignore logger.debug(f"删除缓存 {self.name} 旧数据") # 3. 设置新数据 - await self._cache.set(self.name, serialized_value, ttl=self.expire) + await self._cache.set(self.name, serialized_value, ttl=self.expire)# type: ignore logger.debug(f"设置缓存 {self.name} 新数据完成") except Exception as e: @@ -321,7 +320,7 @@ class CacheData(BaseModel): async def delete_data(self): """删除缓存数据""" try: - await self._cache.delete(self.name) + await self._cache.delete(self.name)# type: ignore except Exception as e: logger.error(f"删除缓存 {self.name}", e=e) @@ -428,7 +427,7 @@ class CacheData(BaseModel): """ cache_key = self._get_cache_key(key) try: - data = await self._cache.get(cache_key) + data = await self._cache.get(cache_key)# type: ignore logger.debug(f"获取缓存 {cache_key} 数据: {data}") if self.result_model: @@ -467,7 +466,7 @@ class CacheData(BaseModel): for key in self._keys: # 提取原始键名(去掉前缀) original_key = key.split(":", 1)[1] - data = await self._cache.get(key) + data = await self._cache.get(key)# type: ignore if self.result_model: result[original_key] = self._deserialize_value( data, self.result_model @@ -484,7 +483,7 @@ class CacheData(BaseModel): cache_key = self._get_cache_key(key) try: serialized_value = self._serialize_value(value) - await self._cache.set(cache_key, serialized_value, ttl=self.expire) + await self._cache.set(cache_key, serialized_value, ttl=self.expire)# type: ignore self._keys.add(cache_key) # 添加到键列表 logger.debug(f"设置缓存 {cache_key} 数据完成") except Exception as e: @@ -495,7 +494,7 @@ class CacheData(BaseModel): """删除指定键的缓存数据""" cache_key = self._get_cache_key(key) try: - await self._cache.delete(cache_key) + await self._cache.delete(cache_key)# type: ignore self._keys.discard(cache_key) # 从键列表中移除 logger.debug(f"删除缓存 {cache_key} 完成") except Exception as e: @@ -505,7 +504,7 @@ class CacheData(BaseModel): """清除所有缓存数据""" try: for key in list(self._keys): # 使用列表复制避免在迭代时修改 - await self._cache.delete(key) + await self._cache.delete(key)# type: ignore self._keys.clear() logger.debug(f"清除缓存 {self.name} 完成") except Exception as e: @@ -524,7 +523,7 @@ class CacheManager: if self._cache_instance is None: if config.redis_host: self._cache_instance = AioCache( - AioCache.REDIS, + AioCache.REDIS,# type: ignore serializer=JsonSerializer(), namespace="zhenxun_cache", timeout=30, # 操作超时时间 @@ -546,12 +545,12 @@ class CacheManager: async def close(self): if self._cache_instance: - await self._cache_instance.close() + await self._cache_instance.close()# type: ignore async def verify_connection(self): """连接测试""" try: - await self._cache.get("__test__") + await self._cache.get("__test__")# type: ignore except Exception as e: logger.error("连接失败", LOG_COMMAND, e=e) raise