Files
TakwayPlatform/app/background_tasks.py
killua 065528f509 1.添加定时任务(每天凌晨四点处理redis记录的删除,存储入mysql持久化操作)
2.修复了prompt中没有用户输入信息的bug
3.优化了更新类接口代码(删除了db.add()代码)
2024-05-07 11:26:59 +08:00

31 lines
1.1 KiB
Python

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")