mirror of
https://git.oceanpay.cc/danial/kami_apple_exchage.git
synced 2025-12-18 23:02:56 +00:00
feat(backend): 清空数据功能增加 Redis 支持
- 在清除所有数据操作中增加 Redis 数据清空步骤 - 新增 RedisManager.clear_all_data 方法实现 Redis 数据清空 - 优化清除数据后的消息提示,区分数据库和 Redis 清空情况 - 移除不必要的日志信息,简化代码
This commit is contained in:
@@ -249,12 +249,25 @@ async def clear_all_data(
|
||||
# 提交事务
|
||||
await db.commit()
|
||||
|
||||
# 清空Redis数据
|
||||
redis_deleted = 0
|
||||
try:
|
||||
redis_deleted = await redis_manager.clear_all_data()
|
||||
logger.info("Redis数据清空完成")
|
||||
except Exception as redis_error:
|
||||
logger.error(f"清空Redis数据失败: {redis_error}")
|
||||
# Redis清空失败不影响数据库操作的提交
|
||||
|
||||
total_deleted = sum(deleted_tables.values())
|
||||
message = (
|
||||
f"成功删除 {total_deleted} 条数据记录"
|
||||
if total_deleted > 0
|
||||
else "数据库已为空,无需删除"
|
||||
)
|
||||
|
||||
if total_deleted > 0 and redis_deleted > 0:
|
||||
message = f"成功删除数据库 {total_deleted} 条记录,清空 Redis {redis_deleted} 个键"
|
||||
elif total_deleted > 0:
|
||||
message = f"成功删除数据库 {total_deleted} 条记录,Redis 无需清空"
|
||||
elif redis_deleted > 0:
|
||||
message = f"数据库已为空,成功清空 Redis {redis_deleted} 个键"
|
||||
else:
|
||||
message = "数据库和Redis均为空,无需删除"
|
||||
|
||||
return DeleteAllDataResponse(
|
||||
success=True,
|
||||
|
||||
@@ -134,7 +134,6 @@ async def get_user_data_list(
|
||||
country=country,
|
||||
name_pattern=name_pattern,
|
||||
)
|
||||
logger.info(f"获取用户数据列表成功: page={page}, size={size}")
|
||||
return result
|
||||
except Exception as e:
|
||||
logger.error(f"获取用户数据列表失败: {str(e)}", exc_info=True)
|
||||
|
||||
@@ -345,6 +345,29 @@ class RedisManager:
|
||||
logger.error(f"获取user_data_id失败: {e}")
|
||||
return None
|
||||
|
||||
async def clear_all_data(self) -> int:
|
||||
"""清空所有Redis数据"""
|
||||
try:
|
||||
redis_client = await self.get_redis()
|
||||
|
||||
# 获取所有键
|
||||
all_keys = await redis_client.keys("*")
|
||||
total_keys = len(all_keys)
|
||||
|
||||
if total_keys == 0:
|
||||
logger.info("Redis已为空,无需清空")
|
||||
return 0
|
||||
|
||||
# 删除所有键
|
||||
deleted_count = await redis_client.delete(*all_keys)
|
||||
|
||||
logger.info(f"已清空Redis数据: 删除 {deleted_count} 个键")
|
||||
return deleted_count
|
||||
|
||||
except Exception as e:
|
||||
logger.error(f"清空Redis数据失败: {e}")
|
||||
raise
|
||||
|
||||
|
||||
# 创建全局单例实例
|
||||
redis_manager = RedisManager()
|
||||
|
||||
@@ -92,7 +92,6 @@ class TaskService:
|
||||
|
||||
task_list.append(task_item)
|
||||
|
||||
logger.info(f"获取任务列表成功,共{len(task_list)}个任务")
|
||||
return TaskListResponse(
|
||||
success=True,
|
||||
tasks=task_list,
|
||||
|
||||
Reference in New Issue
Block a user