|
|
c1a65debbc
|
修复所有资源泄漏问题(P0级bug)
修复的Bug:
- Bug #21: Playwright浏览器实例泄漏
- Bug #22: 数据库连接泄漏(已由连接池解决)
- Bug #23: 截图文件句柄泄漏
- Bug #24: 线程资源未清理
- Bug #25: requests.Session对象泄漏
主要改进:
1. PlaywrightAutomation类:
- 添加atexit注册,确保进程退出时关闭浏览器
- 添加__enter__/__exit__支持context manager
- 添加_closed标志防止重复关闭
- 添加_cleanup_on_exit静默清理方法
2. APIBrowser类:
- 添加atexit注册,确保Session正确关闭
- 添加__enter__/__exit__支持context manager
- 添加_closed标志防止重复关闭
3. 截图功能增强:
- 使用临时文件机制
- 添加文件大小验证
- 失败时自动清理临时文件
- 确保不产生垃圾文件
4. 应用关闭清理:
- 添加cleanup_on_exit()函数
- 注册SIGINT/SIGTERM信号处理器
- 停止所有运行中的任务
- 等待线程优雅退出
- 关闭浏览器线程池
- 关闭数据库连接池
影响:
- 防止长期运行导致的内存泄漏
- 确保进程异常退出时正确清理资源
- 提升系统稳定性和可靠性
受影响文件:
- playwright_automation.py
- api_browser.py
- app.py
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
2025-12-11 13:48:06 +08:00 |
|