refactor: 批量删除任务状态存储从内存字典迁移到 Redis

- BatchDeleteTask 改为 BatchDeleteTaskInfo,状态序列化存入 Redis
- submit_batch_delete / get_batch_delete_task 改为 async 函数
- 删除进度通过限频回调写入 Redis,替代直接修改内存属性
- 移除内存任务注册表和过期清理逻辑,依赖 Redis TTL 自动过期
- 路由层对应调整为 await 调用
This commit is contained in:
fawney19
2026-03-09 02:09:24 +08:00
parent e4476d0bc6
commit 84cf07b7a2
2 changed files with 163 additions and 70 deletions

View File

@@ -491,7 +491,7 @@ class AdminBatchDeleteTaskStatusAdapter(AdminApiAdapter):
from src.services.provider_keys.batch_delete_task import get_batch_delete_task
task = get_batch_delete_task(self.task_id)
task = await get_batch_delete_task(self.task_id)
if task is None or task.provider_id != self.provider_id:
raise HTTPException(status_code=404, detail="Task not found")
return BatchDeleteTaskResponse(
@@ -1111,7 +1111,7 @@ class AdminBatchActionKeysAdapter(AdminApiAdapter):
from src.services.provider_keys.batch_delete_task import submit_batch_delete
key_ids = list(dict.fromkeys(self.body.key_ids))
task_id = submit_batch_delete(pid, key_ids)
task_id = await submit_batch_delete(pid, key_ids)
admin_name = context.user.username if context.user else "admin"
logger.info(
"Pool batch delete submitted by {}: provider={}, keys={}, task_id={}",