1
0
Fork 0
TakwayPlatform/app/background_tasks.py

31 lines
1.1 KiB
Python
Raw Normal View History

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