""" Service for request log operations. """ from datetime import datetime, timedelta, timezone from sqlalchemy import delete from app.database.connection import database from app.config.config import settings from app.database.models import RequestLog from app.log.logger import get_request_log_logger logger = get_request_log_logger() async def delete_old_request_logs_task(): """ 定时删除旧的请求日志。 """ if not settings.AUTO_DELETE_REQUEST_LOGS_ENABLED: logger.info( "Auto-delete for request logs is disabled by settings. Skipping task." ) return days_to_keep = settings.AUTO_DELETE_REQUEST_LOGS_DAYS logger.info( f"Starting scheduled task to delete old request logs older than {days_to_keep} days." ) try: cutoff_date = datetime.now(timezone.utc) - timedelta(days=days_to_keep) query = delete(RequestLog).where(RequestLog.request_time < cutoff_date) if not database.is_connected: logger.info("Connecting to database for request log deletion.") await database.connect() result = await database.execute(query) logger.info( f"Request logs older than {cutoff_date} potentially deleted. Rows affected: {result.rowcount if result else 'N/A'}" ) except Exception as e: logger.error( f"An error occurred during the scheduled request log deletion: {str(e)}", exc_info=True, )