dev
This commit is contained in:
@@ -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
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user