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