diff --git a/main.py b/main.py index 68420c1..6372007 100644 --- a/main.py +++ b/main.py @@ -2277,9 +2277,47 @@ async def fastapi_query_all_scheme_all_records(schemetype: str, schemename: str, return results +@app.get("/queryallschemeallrecords/") +async def fastapi_query_all_scheme_all_records(schemetype: str, schemename: str, querydate: str) -> tuple: + # 缓存查询结果提高性能 + global redis_client + cache_key = f"queryallschemeallrecords_{schemetype}_{schemename}_{querydate}" + data = redis_client.get(cache_key) + if data: + # 使用自定义的反序列化函数 + loaded_dict = msgpack.unpackb(data, object_hook=object_hook) + return loaded_dict + + results = influxdb_api.query_scheme_all_record(scheme_Type=schemetype, scheme_Name=schemename, query_date=querydate, client=influx_client) + packed = msgpack.packb(results, default=default_encoder) + redis_client.set(cache_key, packed) + + return results +@app.get("/queryschemeallrecordsproperty/") +async def fastapi_query_all_scheme_all_records_property(schemetype: str, schemename: str, querydate: str, querytype: str, queryproperty: str) -> list: + # 缓存查询结果提高性能 + global redis_client + cache_key = f"queryallschemeallrecords_{schemetype}_{schemename}_{querydate}" + data = redis_client.get(cache_key) + all_results = None + if data: + # 使用自定义的反序列化函数 + all_results = msgpack.unpackb(data, object_hook=object_hook) + else: + all_results = influxdb_api.query_scheme_all_record(scheme_Type=schemetype, scheme_Name=schemename, query_date=querydate, client=influx_client) + packed = msgpack.packb(all_results, default=default_encoder) + redis_client.set(cache_key, packed) + results = None + if querytype == 'node': + results = all_results[0] + elif querytype == "link": + results = all_results[1] + + return results + @app.post("/clearredis/") async def fastapi_clear_redis(key: str): redis_client.delete(key)