最新编辑
临时文件问题已经在官方2.x版本修复了,此文档不具有参考性了
事件起源
因为生产环境每天有大量的Excel文件导出,以前是导出03版,但是03版的每个sheet行数有限而且同样的数据文件本身也比07的要大不少。后来统一换成了导出07版,查资料知道poi的原生导出会有内存使用过高问题,恰好阿里的esayexcel针对此问题进行了优化,最后选型esayexcel。
因为导出的数据没有格式样式要求,只需要原始数据就可以,改造过程也很顺利。通过测试后顺利上线。有一天生产环境突然报警了,tmp/poifiles文件夹磁盘使用量报警;查看发现里面有大量的poi-sxssf-sheet*.xml(*是一串随机数字)临时文件。当时手动清理了,也没有太在意。过了大概有3周吧,又出现了。从这次开始就把调查这个原因提上了日程。
调查过程
首先在本地建立一个maven测试项目,导入github上的easyexcel项目,创建测试数据进行测试。
经过研究发现在导出的过程中会产生两种临时文件,一种是xlsx,一种是xml。导出结束后会将xlsx的临时文件进行清理,但是没有清理xml文件。
在本地测试发现,将Tomcat停了(st