dev
This commit is contained in:
@@ -4,7 +4,7 @@ from api.core.Gzip import gzip_zip, gzip_unzip
|
|||||||
from config.main import config
|
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
|
info = None
|
||||||
if not config.DEBUG_MODE and redis:
|
if not config.DEBUG_MODE and redis:
|
||||||
try:
|
try:
|
||||||
@@ -27,3 +27,24 @@ async def get_redis_info(redis, key, fun, expire = 0, without_gzip=False):
|
|||||||
if expire > 0:
|
if expire > 0:
|
||||||
redis.expire(key, expire)
|
redis.expire(key, expire)
|
||||||
return info
|
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
|
import json
|
||||||
from fastapi import APIRouter, Path, Query, Depends
|
from fastapi import APIRouter, Path, Query, Depends
|
||||||
from api.core.Response import response
|
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 api.dp import RedisDep
|
||||||
from typing import Annotated
|
from typing import Annotated
|
||||||
import requests
|
import requests
|
||||||
@@ -187,5 +187,5 @@ async def get_official_gold(redis: RedisDep) -> Response[list[OfficialGold]]:
|
|||||||
print(e)
|
print(e)
|
||||||
return response(data=[])
|
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)
|
return response(data=data)
|
||||||
|
|||||||
Reference in New Issue
Block a user