This commit is contained in:
2026-03-09 19:02:33 +08:00
parent b1a87fdb46
commit babb4eaa23
2 changed files with 24 additions and 3 deletions
+22 -1
View File
@@ -4,7 +4,7 @@ from api.core.Gzip import gzip_zip, gzip_unzip
from config.main import config
async def get_redis_info(redis, key, fun, expire = 0, without_gzip=False):
async def get_redis_info_async(redis, key, fun, expire = 0, without_gzip=False):
info = None
if not config.DEBUG_MODE and redis:
try:
@@ -27,3 +27,24 @@ async def get_redis_info(redis, key, fun, expire = 0, without_gzip=False):
if expire > 0:
redis.expire(key, expire)
return info
def get_redis_info(redis, key, fun, expire = 0, without_gzip=False):
info = None
if not config.DEBUG_MODE and redis:
try:
if without_gzip:
info = json.loads(redis.get(key))
else:
info = json.loads(gzip_unzip(redis.get(key)))
except Exception:
info = None
if info is None:
info = fun()
if not config.DEBUG_MODE and redis and info is not None:
if without_gzip:
redis.set(key, json.dumps(info))
else:
redis.set(key, gzip_zip(json.dumps(info)))
if expire > 0:
redis.expire(key, expire)
return info
+2 -2
View File
@@ -6,7 +6,7 @@ from api.core.Gzip import register_gzip_request
import json
from fastapi import APIRouter, Path, Query, Depends
from api.core.Response import response
from api.core.Redis import get_redis_info
from api.core.Redis import get_redis_info,get_redis_info_async
from api.dp import RedisDep
from typing import Annotated
import requests
@@ -187,5 +187,5 @@ async def get_official_gold(redis: RedisDep) -> Response[list[OfficialGold]]:
print(e)
return response(data=[])
# 设置半小时过期一次
data = await get_redis_info(redis, key, get_data, 30 * 60)
data = await get_redis_info_async(redis, key, get_data, 30 * 60)
return response(data=data)