SuperAPI AI 工具集

streaming-export-safety

编程与开发

查看项目

更新于 10-16 05:06

技能介绍

用途:当代码涉及 Excel/CSV/JSON/PDF 大文件导出、批量序列化或内存中构建大对象时触发,防止 OOM、Full GC 风暴、临时文件残留、HTTP 超时。

主要能力:给出数据量级决策(≤1 万行可内存构建;1 万~10 万行建议流式;>10 万行必须流式+异步;未知量须流式+上限保护),并针对五类陷阱提供流式替代方案:Excel 用 SXSSF(windowSize=100、setCompressTempFiles(true)、必须 dispose())、EasyExcel 分批 doWrite;CSV 用 BufferedReader 逐行读、OpenCSV/CSVWriter 逐行写;JSON 用 Jackson JsonGenerator 分页写,极大数据推荐 JSONL;PDF 用 iText 分批 flush,或 ReportLab Canvas、gofpdf、PDFKit;大数据导出改用任务 ID + 异步 + 对象存储,避免同步阻塞 HTTP 线程。

使用方式:按资料中的语言对照表选择流式 API,注意 Go 的 csv.Writer 必须 w.Flush()、excelize 的 StreamWriter 必须 Flush,Node 需逐行 commit。

适用场景:批量报表导出、数据迁移、大对象序列化接口。

限制:资料指出 SXSSF 不支持随机访问已 flush 行、公式自动计算、cloneSheet;临时文件默认在 java.io.tmpdir,容器需注意磁盘配额;部分 PDF 库无真正流式 API,需拆分或换库。其余事实暂未提供。