mirror of
https://github.com/zhenxun-org/zhenxun_bot.git
synced 2025-12-15 14:22:55 +08:00
ttest11
This commit is contained in:
parent
8121e2b32c
commit
03c78e1bf0
@ -1,15 +1,14 @@
|
|||||||
|
import inspect
|
||||||
from collections.abc import Callable
|
from collections.abc import Callable
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from functools import wraps
|
from functools import wraps
|
||||||
import inspect
|
|
||||||
from typing import Any, ClassVar, Generic, TypeVar
|
from typing import Any, ClassVar, Generic, TypeVar
|
||||||
|
|
||||||
|
import nonebot
|
||||||
from aiocache import Cache as AioCache
|
from aiocache import Cache as AioCache
|
||||||
|
|
||||||
# from aiocache.backends.redis import RedisCache
|
# from aiocache.backends.redis import RedisCache
|
||||||
from aiocache.base import BaseCache
|
from aiocache.base import BaseCache
|
||||||
from aiocache.serializers import JsonSerializer
|
from aiocache.serializers import JsonSerializer
|
||||||
import nonebot
|
|
||||||
from nonebot.compat import model_dump
|
from nonebot.compat import model_dump
|
||||||
from nonebot.utils import is_coroutine_callable
|
from nonebot.utils import is_coroutine_callable
|
||||||
from pydantic import BaseModel, PrivateAttr
|
from pydantic import BaseModel, PrivateAttr
|
||||||
@ -208,7 +207,7 @@ class CacheData(BaseModel):
|
|||||||
async def get_data(self) -> Any:
|
async def get_data(self) -> Any:
|
||||||
"""从缓存获取数据"""
|
"""从缓存获取数据"""
|
||||||
try:
|
try:
|
||||||
data = await self._cache.get(self.name)
|
data = await self._cache.get(self.name) #type:ignore
|
||||||
logger.debug(f"获取缓存 {self.name} 数据: {data}")
|
logger.debug(f"获取缓存 {self.name} 数据: {data}")
|
||||||
|
|
||||||
# 如果数据为空,尝试重新加载
|
# 如果数据为空,尝试重新加载
|
||||||
@ -307,11 +306,11 @@ class CacheData(BaseModel):
|
|||||||
logger.debug(f"设置缓存 {self.name} 序列化后数据: {serialized_value}")
|
logger.debug(f"设置缓存 {self.name} 序列化后数据: {serialized_value}")
|
||||||
|
|
||||||
# 2. 删除旧数据
|
# 2. 删除旧数据
|
||||||
await self._cache.delete(self.name)
|
await self._cache.delete(self.name) #type:ignore
|
||||||
logger.debug(f"删除缓存 {self.name} 旧数据")
|
logger.debug(f"删除缓存 {self.name} 旧数据")
|
||||||
|
|
||||||
# 3. 设置新数据
|
# 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} 新数据完成")
|
logger.debug(f"设置缓存 {self.name} 新数据完成")
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
@ -321,7 +320,7 @@ class CacheData(BaseModel):
|
|||||||
async def delete_data(self):
|
async def delete_data(self):
|
||||||
"""删除缓存数据"""
|
"""删除缓存数据"""
|
||||||
try:
|
try:
|
||||||
await self._cache.delete(self.name)
|
await self._cache.delete(self.name) #type:ignore
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(f"删除缓存 {self.name}", e=e)
|
logger.error(f"删除缓存 {self.name}", e=e)
|
||||||
|
|
||||||
@ -428,7 +427,7 @@ class CacheData(BaseModel):
|
|||||||
"""
|
"""
|
||||||
cache_key = self._get_cache_key(key)
|
cache_key = self._get_cache_key(key)
|
||||||
try:
|
try:
|
||||||
data = await self._cache.get(cache_key)
|
data = await self._cache.get(cache_key) #type:ignore
|
||||||
logger.debug(f"获取缓存 {cache_key} 数据: {data}")
|
logger.debug(f"获取缓存 {cache_key} 数据: {data}")
|
||||||
|
|
||||||
if self.result_model:
|
if self.result_model:
|
||||||
@ -467,7 +466,7 @@ class CacheData(BaseModel):
|
|||||||
for key in self._keys:
|
for key in self._keys:
|
||||||
# 提取原始键名(去掉前缀)
|
# 提取原始键名(去掉前缀)
|
||||||
original_key = key.split(":", 1)[1]
|
original_key = key.split(":", 1)[1]
|
||||||
data = await self._cache.get(key)
|
data = await self._cache.get(key) #type:ignore
|
||||||
if self.result_model:
|
if self.result_model:
|
||||||
result[original_key] = self._deserialize_value(
|
result[original_key] = self._deserialize_value(
|
||||||
data, self.result_model
|
data, self.result_model
|
||||||
@ -484,7 +483,7 @@ class CacheData(BaseModel):
|
|||||||
cache_key = self._get_cache_key(key)
|
cache_key = self._get_cache_key(key)
|
||||||
try:
|
try:
|
||||||
serialized_value = self._serialize_value(value)
|
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) # 添加到键列表
|
self._keys.add(cache_key) # 添加到键列表
|
||||||
logger.debug(f"设置缓存 {cache_key} 数据完成")
|
logger.debug(f"设置缓存 {cache_key} 数据完成")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
@ -495,7 +494,7 @@ class CacheData(BaseModel):
|
|||||||
"""删除指定键的缓存数据"""
|
"""删除指定键的缓存数据"""
|
||||||
cache_key = self._get_cache_key(key)
|
cache_key = self._get_cache_key(key)
|
||||||
try:
|
try:
|
||||||
await self._cache.delete(cache_key)
|
await self._cache.delete(cache_key) #type:ignore
|
||||||
self._keys.discard(cache_key) # 从键列表中移除
|
self._keys.discard(cache_key) # 从键列表中移除
|
||||||
logger.debug(f"删除缓存 {cache_key} 完成")
|
logger.debug(f"删除缓存 {cache_key} 完成")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
@ -505,7 +504,7 @@ class CacheData(BaseModel):
|
|||||||
"""清除所有缓存数据"""
|
"""清除所有缓存数据"""
|
||||||
try:
|
try:
|
||||||
for key in list(self._keys): # 使用列表复制避免在迭代时修改
|
for key in list(self._keys): # 使用列表复制避免在迭代时修改
|
||||||
await self._cache.delete(key)
|
await self._cache.delete(key) #type:ignore
|
||||||
self._keys.clear()
|
self._keys.clear()
|
||||||
logger.debug(f"清除缓存 {self.name} 完成")
|
logger.debug(f"清除缓存 {self.name} 完成")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
@ -546,12 +545,12 @@ class CacheManager:
|
|||||||
|
|
||||||
async def close(self):
|
async def close(self):
|
||||||
if self._cache_instance:
|
if self._cache_instance:
|
||||||
await self._cache_instance.close()
|
await self._cache_instance.close() #type:ignore
|
||||||
|
|
||||||
async def verify_connection(self):
|
async def verify_connection(self):
|
||||||
"""连接测试"""
|
"""连接测试"""
|
||||||
try:
|
try:
|
||||||
await self._cache.get("__test__")
|
await self._cache.get("__test__") #type:ignore
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error("连接失败", LOG_COMMAND, e=e)
|
logger.error("连接失败", LOG_COMMAND, e=e)
|
||||||
raise
|
raise
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user