If the query date is today, we don't cache it

This commit is contained in:
DingZQ
2025-04-07 22:13:04 +08:00
parent 63a8d0e3f4
commit e07bbb70f3
2 changed files with 35 additions and 9 deletions

21
main.py
View File

@@ -159,12 +159,10 @@ async def log_requests(request: Request, call_next):
@app.on_event("startup")
async def startup_db():
logger.info('\n')
logger.info('**********************************************************')
logger.info(str(datetime.now()))
logger.info("TJWater CloudService is starting...")
logger.info('**********************************************************')
logger.info('\n')
# open 'bb' by default
open_project("bb")
@@ -2326,18 +2324,23 @@ async def fastapi_query_all_records_by_time(querytime: str) -> dict[str, list]:
async def fastapi_query_all_records_by_date(querydate: str) -> dict[str, list]:
# 缓存查询结果提高性能
global redis_client
cache_key = f"queryallrecordsbydate_{querydate}"
data = redis_client.get(cache_key)
if data:
# 使用自定义的反序列化函数
loaded_dict = msgpack.unpackb(data, object_hook=decode_datetime)
return loaded_dict
# 今天的不要去缓存
if not time_api.is_today(querydate):
cache_key = f"queryallrecordsbydate_{querydate}"
data = redis_client.get(cache_key)
if data:
# 使用自定义的反序列化函数
loaded_dict = msgpack.unpackb(data, object_hook=decode_datetime)
return loaded_dict
nodes_links: tuple = influxdb_api.query_all_records_by_date(query_date=querydate)
results = { "nodes": nodes_links[0],
"links": nodes_links[1] }
redis_client.set(cache_key, msgpack.packb(results, default=encode_datetime))
# 今天的不要去缓存
if not time_api.is_today(querydate):
redis_client.set(cache_key, msgpack.packb(results, default=encode_datetime))
return results