This commit is contained in:
2026-11-04 16:21:18 +08:00
parent cc66e98f61
commit c2775b732e
3 changed files with 28 additions and 9 deletions
+4 -4
View File
@@ -152,8 +152,7 @@ async def get_thirdpart_gold(redis: Annotated[AsyncRedis, Depends(thirdpart_gold
四舍五入至两位小数,不按库存或份数加权。
每30分钟自动后台刷新,跨区页面最短间隔8秒(每分钟不超过8次),Redis锁避免重复刷新。
初始化跨区未齐时响应体code=202并注明进度;9区缓存齐全才返回code=200。
刷新中可返回部分已完成跨区,缺失跨区不补0。
初始化跨区未齐时响应体code=202、data=[]并注明进度;9区缓存齐全才返回code=200及完整数据。
已有缓存即时返回,失败保留原更新时间,旧值最多保留24小时。
该接口在DEBUG模式下也使用缓存,Redis不可用时不直接抓取上游。
"""
@@ -166,8 +165,9 @@ async def get_thirdpart_gold(redis: Annotated[AsyncRedis, Depends(thirdpart_gold
await thirdpart_gold.schedule_refresh(redis, background_tasks, data)
except Exception:
logger.exception('schedule thirdpart gold refresh failed')
return response(code=200 if data else 503, data=data, message='第三方金价刷新暂不可用')
complete = len(data) == len(thirdpart_gold.REGIONS)
return response(code=200 if complete else 503, data=data if complete else [], message='第三方金价刷新暂不可用')
if len(data) < len(thirdpart_gold.REGIONS):
return response(code=202, data=data,
return response(code=202, data=[],
message=f'第三方金价缓存尚未齐全({len(data)}/{len(thirdpart_gold.REGIONS)}跨区),后台刷新中或等待重试')
return response(data=data)