From de3ac89ab8b28d9aa19a57e32dd40dfab4943c7b Mon Sep 17 00:00:00 2001 From: DingZQ Date: Sun, 20 Apr 2025 21:51:06 +0800 Subject: [PATCH] If it's today or future, we don't cache queryallscadarecordsbydate --- main.py | 32 +++++++++++++++++++++++--------- 1 file changed, 23 insertions(+), 9 deletions(-) diff --git a/main.py b/main.py index fa6ca85..79b02a6 100644 --- a/main.py +++ b/main.py @@ -2524,18 +2524,32 @@ async def fastapi_query_scada_data_by_device_id_and_date(ids: str, querydate: st # 返回所有SCADA设备在指定日期的所有记录 @app.get("/queryallscadarecordsbydate/") async def fastapi_query_all_scada_records_by_date(querydate: str): - # 缓存查询结果提高性能 global redis_client - cache_key = f"queryallscadarecordsbydate_{querydate}" - data = redis_client.get(cache_key) - if data: - # 使用自定义的反序列化函数 - loaded_dict = msgpack.unpackb(data, object_hook=decode_datetime) - return loaded_dict + + is_today_or_future = time_api.is_today_or_future(querydate) + logger.info(f"isToday or future: {is_today_or_future}") + + # 今天的不要去缓存 + 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) - 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