From aba807075e06727f3b9917733866abb1925ed09b Mon Sep 17 00:00:00 2001 From: DingZQ Date: Sat, 12 Apr 2025 22:51:37 +0800 Subject: [PATCH] Add API Query by daterange --- main.py | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/main.py b/main.py index f66a8ad..c4dd19a 100644 --- a/main.py +++ b/main.py @@ -2319,7 +2319,6 @@ async def fastapi_query_all_records_by_time(querytime: str) -> dict[str, list]: return { "nodes": results[0], "links": results[1] } -#def query_all_record_by_date(query_date: str, bucket: str="realtime_simulation_result", client: InfluxDBClient=client) -> tuple: @app.get("/queryallrecordsbydate/") async def fastapi_query_all_records_by_date(querydate: str) -> dict[str, list]: # 缓存查询结果提高性能 @@ -2344,6 +2343,30 @@ async def fastapi_query_all_records_by_date(querydate: str) -> dict[str, list]: return results +@app.get("/queryallrecordsbytimerange/") +async def fastapi_query_all_records_by_time_range(starttime: str, endtime: str) -> dict[str, list]: + # 缓存查询结果提高性能 + global redis_client + + # 今天的不要去缓存 + if not time_api.is_today_or_future(starttime): + cache_key = f"queryallrecordsbytimerange_{starttime}_{endtime}" + 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_time_range(starttime=starttime, endtime=endtime) + results = { "nodes": nodes_links[0], + "links": nodes_links[1] } + + # 今天的不要去缓存 + if not time_api.is_today_or_future(starttime): + redis_client.set(cache_key, msgpack.packb(results, default=encode_datetime)) + + return results + #2025-03-15, DingZQ @app.get("/queryallrecordsbydatewithtype/") async def fastapi_query_all_records_by_date_with_type(querydate: str, querytype: str) -> list: