If the query date is today, we don't cache it
This commit is contained in:
21
main.py
21
main.py
@@ -159,12 +159,10 @@ async def log_requests(request: Request, call_next):
|
|||||||
|
|
||||||
@app.on_event("startup")
|
@app.on_event("startup")
|
||||||
async def startup_db():
|
async def startup_db():
|
||||||
logger.info('\n')
|
|
||||||
logger.info('**********************************************************')
|
logger.info('**********************************************************')
|
||||||
logger.info(str(datetime.now()))
|
logger.info(str(datetime.now()))
|
||||||
logger.info("TJWater CloudService is starting...")
|
logger.info("TJWater CloudService is starting...")
|
||||||
logger.info('**********************************************************')
|
logger.info('**********************************************************')
|
||||||
logger.info('\n')
|
|
||||||
|
|
||||||
# open 'bb' by default
|
# open 'bb' by default
|
||||||
open_project("bb")
|
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]:
|
async def fastapi_query_all_records_by_date(querydate: str) -> dict[str, list]:
|
||||||
# 缓存查询结果提高性能
|
# 缓存查询结果提高性能
|
||||||
global redis_client
|
global redis_client
|
||||||
cache_key = f"queryallrecordsbydate_{querydate}"
|
|
||||||
data = redis_client.get(cache_key)
|
# 今天的不要去缓存
|
||||||
if data:
|
if not time_api.is_today(querydate):
|
||||||
# 使用自定义的反序列化函数
|
cache_key = f"queryallrecordsbydate_{querydate}"
|
||||||
loaded_dict = msgpack.unpackb(data, object_hook=decode_datetime)
|
data = redis_client.get(cache_key)
|
||||||
return loaded_dict
|
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)
|
nodes_links: tuple = influxdb_api.query_all_records_by_date(query_date=querydate)
|
||||||
results = { "nodes": nodes_links[0],
|
results = { "nodes": nodes_links[0],
|
||||||
"links": nodes_links[1] }
|
"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
|
return results
|
||||||
|
|
||||||
|
|||||||
23
time_api.py
23
time_api.py
@@ -112,3 +112,26 @@ def get_date_from_time(time: str) -> str:
|
|||||||
return str(dt.date())
|
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))
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user