1.添加定时任务(每天凌晨四点处理redis记录的删除,存储入mysql持久化操作)

2.修复了prompt中没有用户输入信息的bug
3.优化了更新类接口代码(删除了db.add()代码)
This commit is contained in:
killua committed 2024-05-07 11:26:59 +08:00
1 parent de370f77ac
commit 065528f509
7 files changed
+65 -16

No files matched your search

+31
View File
@@ -0,0 +1,31 @@
from .dependencies.database import get_db
from .dependencies.redis import get_redis
from .dependencies.logger import get_logger
from .models import Session
from datetime import datetime, timedelta
logger = get_logger()
def updating_redis_cache():
db = next(get_db())
redis = get_redis()
current_time = datetime.now()
two_days_ago = current_time - timedelta(days=2)
db.begin()
try:
expired_sessions = db.query(Session.id).filter(Session.last_activity < two_days_ago).all()
for session_id_tuple in expired_sessions:
session_id = session_id_tuple[0]
session_content = redis.get(session_id)
if session_content is None:
logger.error(f"Session {session_id} not found in Redis cache")
continue
redis.delete(session_id)
db.query(Session).filter(Session.id == session_id).update({'content':session_content})
db.commit()
except Exception as e:
db.rollback()
raise e
finally:
db.close()
logger.info("Redis cache updated successfully")