From 92cd2f0bff014399754e41efeded5b319c5397b1 Mon Sep 17 00:00:00 2001 From: DingZQ Date: Fri, 4 Apr 2025 12:28:44 +0800 Subject: [PATCH] fastapi_burst_analysis cache immediately --- influxdb_api.py | 1 + main.py | 16 ++++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/influxdb_api.py b/influxdb_api.py index c5a23bb..e9d5df0 100644 --- a/influxdb_api.py +++ b/influxdb_api.py @@ -2559,6 +2559,7 @@ def query_scheme_curve_by_ID_property(scheme_Type: str, scheme_Name: str, query_ # 2025/02/21 +# query_date 是模拟的时间,不是查询的时间,也不是运行模拟的时间 def query_scheme_all_record(scheme_Type: str, scheme_Name: str, query_date: str, bucket: str="scheme_simulation_result") -> tuple: """ 查询指定方案的所有记录,包括‘node'和‘link’,分别以指定格式返回。 diff --git a/main.py b/main.py index 8dcf7cb..181363d 100644 --- a/main.py +++ b/main.py @@ -24,6 +24,7 @@ from dateutil import parser import influxdb_info import influxdb_api import py_linq +import time_api JUNCTION = 0 RESERVOIR = 1 @@ -2685,6 +2686,21 @@ async def fastapi_burst_analysis(data: BurstAnalysis) -> str: ) #os.rename(filename2, filename) + # 将 时间转换成日期,然后缓存这个计算结果 + # 缓存key: burst_analysis__ + global redis_client + schemename = data.schema_name + querydate = time_api.get_date_from_time(data.modify_pattern_start_time) + + print(f"schemename: {schemename}, querydate: {querydate}") + + cache_key = f"queryallschemeallrecords_burst_{schemename}_{querydate}" + data = redis_client.get(cache_key) + if not data: + results = influxdb_api.query_scheme_all_record("burst", scheme_Name=schemename, query_date=querydate) + packed = msgpack.packb(results, default=encode_datetime) + redis_client.set(cache_key, packed) + return "success" ############################################################