diff --git a/main.py b/main.py index a37d181..896e7bf 100644 --- a/main.py +++ b/main.py @@ -159,12 +159,10 @@ async def log_requests(request: Request, call_next): @app.on_event("startup") async def startup_db(): - logger.info('\n') logger.info('**********************************************************') logger.info(str(datetime.now())) logger.info("TJWater CloudService is starting...") logger.info('**********************************************************') - logger.info('\n') # open 'bb' by default open_project("bb") @@ -2326,18 +2324,23 @@ async def fastapi_query_all_records_by_time(querytime: str) -> dict[str, list]: async def fastapi_query_all_records_by_date(querydate: str) -> dict[str, list]: # 缓存查询结果提高性能 global redis_client - cache_key = f"queryallrecordsbydate_{querydate}" - data = redis_client.get(cache_key) - if data: - # 使用自定义的反序列化函数 - loaded_dict = msgpack.unpackb(data, object_hook=decode_datetime) - return loaded_dict + + # 今天的不要去缓存 + if not time_api.is_today(querydate): + cache_key = f"queryallrecordsbydate_{querydate}" + 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_date(query_date=querydate) results = { "nodes": nodes_links[0], "links": nodes_links[1] } - redis_client.set(cache_key, msgpack.packb(results, default=encode_datetime)) + # 今天的不要去缓存 + if not time_api.is_today(querydate): + redis_client.set(cache_key, msgpack.packb(results, default=encode_datetime)) return results diff --git a/time_api.py b/time_api.py index 70723ec..b4eaf9b 100644 --- a/time_api.py +++ b/time_api.py @@ -112,3 +112,26 @@ def get_date_from_time(time: str) -> str: return str(dt.date()) +def is_today(query_date: str) -> bool: + ''' + 判断一个日期是否是今天 + ''' + dt = parse_beijing_time(query_date) + return dt.date() == datetime.now().date() + + +def is_yesterday(query_date: str) -> bool: + ''' + 判断一个日期是否是昨天 + ''' + dt = parse_beijing_time(query_date) + return dt.date() == (datetime.now().date() - timedelta(days=1)) + +def is_tomorrow(query_date: str) -> bool: + ''' + 判断一个日期是否是明天 + ''' + dt = parse_beijing_time(query_date) + return dt.date() == (datetime.now().date() + timedelta(days=1)) + +