2026-03-31 16:30:00 ~ 2026-04-01 16:30:00
动态生成PDF是业务系统中的高频需求,涉及合同、报表等场景。针对报表PDF生成,调研了html2pdf、wkhtmltopdf、DOCX模板+LibreOffice、XML模板+LibreOffice四种方案。综合考虑格式精准度、展示效果、文档可用性、性能与部署等因素,最终选择XML模板+LibreOffice方案,因其文档质量稳定、适合复杂模板、长期维护成本低且扩展能力强。
登录后可查看文章图片
线上服务频繁Full GC,最终定位为ThreadLocal在线程池场景下的内存泄漏。通过GC日志和堆转储分析,发现ThreadLocal缓存对象未被清理,导致内存持续累积。代码中虽有清理逻辑,但因线程池机制,清理代码从未执行。解决方案是使用TaskDecorator,在任务执行前后确保ThreadLocal的及时清理,避免内存泄漏。
登录后可查看文章图片
关注公众号
接收推送