WuYongJie 5821d73291 初始提交:3D家具安装展示系统
包含:
- furniture-3d-system:Next.js 16 全栈应用(资产中心、产品管理、3D装配动画)
- autocad-plugin:AutoCAD 家具导出插件源码
- 资产中心改造:编辑弹窗化、删除功能、Toast反馈、自定义Select组件

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-02 14:00:19 +08:00

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` 通过
## 预防策略
- 异步任务必须明确“创建 -> 执行 -> 完成 -> 回收”生命周期,避免状态和文件双泄漏。