Add API queryallschemeallrecords
This commit is contained in:
@@ -333,12 +333,13 @@ def store_realtime_SCADA_data_to_influxdb(get_real_value_time: str, bucket: str
|
|||||||
if client.ping():
|
if client.ping():
|
||||||
pass
|
pass
|
||||||
else:
|
else:
|
||||||
print("{} -- Failed to connect to InfluxDB.".format(
|
print("{} -- Failed to connect to InfluxDB.".format( datetime.now().strftime('%Y-%m-%d %H:%M:%S')))
|
||||||
datetime.now().strftime('%Y-%m-%d %H:%M:%S')))
|
|
||||||
write_options = WriteOptions(
|
write_options = WriteOptions(
|
||||||
jitter_interval=200, # 添加抖动以避免同时写入
|
jitter_interval=200, # 添加抖动以避免同时写入
|
||||||
max_retry_delay=30000 # 最大重试延迟(毫秒)
|
max_retry_delay=30000 # 最大重试延迟(毫秒)
|
||||||
)
|
)
|
||||||
|
|
||||||
write_api = client.write_api(write_options=write_options)
|
write_api = client.write_api(write_options=write_options)
|
||||||
# 创建一个临时存储点数据的列表
|
# 创建一个临时存储点数据的列表
|
||||||
points_to_write = []
|
points_to_write = []
|
||||||
@@ -2594,6 +2595,7 @@ def query_scheme_all_record(scheme_Type: str, scheme_Name: str, query_date: str,
|
|||||||
|
|
||||||
|
|
||||||
# 2025/03/04
|
# 2025/03/04
|
||||||
|
# burst_Analysis
|
||||||
def query_scheme_all_record_property(scheme_Type: str, scheme_Name: str, query_date: str, type: str, property: str,
|
def query_scheme_all_record_property(scheme_Type: str, scheme_Name: str, query_date: str, type: str, property: str,
|
||||||
bucket: str="scheme_simulation_result", client: InfluxDBClient=client) -> list:
|
bucket: str="scheme_simulation_result", client: InfluxDBClient=client) -> list:
|
||||||
"""
|
"""
|
||||||
|
|||||||
21
main.py
21
main.py
@@ -2258,6 +2258,27 @@ async def fastapi_query_all_scada_records_by_date(querydate: str):
|
|||||||
|
|
||||||
return result_dict
|
return result_dict
|
||||||
|
|
||||||
|
# DingZQ, 2025-03-15
|
||||||
|
# Scheme
|
||||||
|
@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.post("/clearredis/")
|
@app.post("/clearredis/")
|
||||||
async def fastapi_clear_redis(key: str):
|
async def fastapi_clear_redis(key: str):
|
||||||
|
|||||||
Reference in New Issue
Block a user