If it's today or future, we don't cache queryallscadarecordsbydate
This commit is contained in:
32
main.py
32
main.py
@@ -2524,18 +2524,32 @@ async def fastapi_query_scada_data_by_device_id_and_date(ids: str, querydate: st
|
|||||||
# 返回所有SCADA设备在指定日期的所有记录
|
# 返回所有SCADA设备在指定日期的所有记录
|
||||||
@app.get("/queryallscadarecordsbydate/")
|
@app.get("/queryallscadarecordsbydate/")
|
||||||
async def fastapi_query_all_scada_records_by_date(querydate: str):
|
async def fastapi_query_all_scada_records_by_date(querydate: str):
|
||||||
# 缓存查询结果提高性能
|
|
||||||
global redis_client
|
global redis_client
|
||||||
cache_key = f"queryallscadarecordsbydate_{querydate}"
|
|
||||||
data = redis_client.get(cache_key)
|
is_today_or_future = time_api.is_today_or_future(querydate)
|
||||||
if data:
|
logger.info(f"isToday or future: {is_today_or_future}")
|
||||||
# 使用自定义的反序列化函数
|
|
||||||
loaded_dict = msgpack.unpackb(data, object_hook=decode_datetime)
|
# 今天的不要去缓存
|
||||||
return loaded_dict
|
if not is_today_or_future:
|
||||||
|
cache_key = f"queryallscadarecordsbydate_{querydate}"
|
||||||
|
data = redis_client.get(cache_key)
|
||||||
|
if data:
|
||||||
|
# 使用自定义的反序列化函数
|
||||||
|
loaded_dict = msgpack.unpackb(data, object_hook=decode_datetime)
|
||||||
|
logger.info(f"return from cache redis")
|
||||||
|
return loaded_dict
|
||||||
|
|
||||||
|
logger.info(f"query from influxdb")
|
||||||
|
|
||||||
result_dict = influxdb_api.query_all_SCADA_records_by_date(query_date=querydate)
|
result_dict = influxdb_api.query_all_SCADA_records_by_date(query_date=querydate)
|
||||||
packed = msgpack.packb(result_dict, default=encode_datetime)
|
|
||||||
redis_client.set(cache_key, packed)
|
# 今天的不要去缓存
|
||||||
|
if not is_today_or_future:
|
||||||
|
logger.info(f"save to cache redis")
|
||||||
|
packed = msgpack.packb(result_dict, default=encode_datetime)
|
||||||
|
redis_client.set(cache_key, packed)
|
||||||
|
|
||||||
|
logger.info(f"return results")
|
||||||
|
|
||||||
return result_dict
|
return result_dict
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user