包含: - furniture-3d-system:Next.js 16 全栈应用(资产中心、产品管理、3D装配动画) - autocad-plugin:AutoCAD 家具导出插件源码 - 资产中心改造:编辑弹窗化、删除功能、Toast反馈、自定义Select组件 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
37 lines
1.0 KiB
Markdown
37 lines
1.0 KiB
Markdown
---
|
|
title: DWG 异步任务生命周期清理模式
|
|
date: 2026-02-15
|
|
module: dwg-converter
|
|
problem_type: workflow_issue
|
|
severity: high
|
|
symptoms:
|
|
- activeTasks 持续增长
|
|
- temp/uploads 原始文件长期残留
|
|
root_cause: 异步任务缺少完成态回收机制(内存与磁盘)
|
|
resolution_type: code_fix
|
|
status: active
|
|
confidence: high
|
|
tags: [memory, cleanup, async-task, dwg]
|
|
related_patterns: []
|
|
---
|
|
|
|
## 现象与影响
|
|
|
|
DWG 异步转换完成后未清理任务状态和输入文件,服务长期运行后会出现内存与磁盘增长。
|
|
|
|
## 修复动作
|
|
|
|
1. `src/lib/dwg/converter.ts` 增加 `scheduleTaskCleanup`,完成后延迟移除 `activeTasks`。
|
|
2. 增加 `cleanupInputFile`,在成功/失败的 `finally` 阶段统一删除输入文件。
|
|
3. 异常兜底分支也执行相同清理逻辑。
|
|
|
|
## 验证
|
|
|
|
- `npm run type-check -- --pretty false` 通过
|
|
- `npm test -- tests/api/auth-me.test.ts --runInBand` 通过
|
|
|
|
## 预防策略
|
|
|
|
- 异步任务必须明确“创建 -> 执行 -> 完成 -> 回收”生命周期,避免状态和文件双泄漏。
|
|
|