mirror of
https://github.com/LiteyukiStudio/nonebot-plugin-marshoai.git
synced 2025-02-27 18:06:36 +08:00
40 lines
846 B
Python
40 lines
846 B
Python
|
from ..models import Cache
|
|||
|
|
|||
|
cache = Cache()
|
|||
|
|
|||
|
|
|||
|
def from_cache(key):
|
|||
|
"""
|
|||
|
当缓存中有数据时,直接返回缓存中的数据,否则执行函数并将结果存入缓存
|
|||
|
"""
|
|||
|
|
|||
|
def decorator(func):
|
|||
|
async def wrapper(*args, **kwargs):
|
|||
|
cached = cache.get(key)
|
|||
|
if cached:
|
|||
|
return cached
|
|||
|
else:
|
|||
|
result = await func(*args, **kwargs)
|
|||
|
cache.set(key, result)
|
|||
|
return result
|
|||
|
|
|||
|
return wrapper
|
|||
|
|
|||
|
return decorator
|
|||
|
|
|||
|
|
|||
|
def update_to_cache(key):
|
|||
|
"""
|
|||
|
执行函数并将结果存入缓存
|
|||
|
"""
|
|||
|
|
|||
|
def decorator(func):
|
|||
|
async def wrapper(*args, **kwargs):
|
|||
|
result = await func(*args, **kwargs)
|
|||
|
cache.set(key, result)
|
|||
|
return result
|
|||
|
|
|||
|
return wrapper
|
|||
|
|
|||
|
return decorator
|