文章目录
- 背景
- 实现
-
- 1.异步处理
-
- 1.1 使用job
- 1.2 使用mq
- 2.使用easyexcel
- 4.多个sheet
- 5.计算limit的起始位置
- 6.文件上传到OSS
- 7.通过WebSocket推送通知
- 8.总条数可配置
- 9.order by商品编号
- 总结
背景
用户在UI界面上点击全部导出按钮,就能导出所有商品数据。
咋一看,这个需求挺简单的。
但如果我告诉你,导出的记录条数,可能有一百多万,甚至两百万呢? 这时你可能会倒吸一口气。因为你可能会面临如下问题:
- 如果同步导数据,接口很容易超时。
- 如果把所有数据一次性装载到内存,很容易引起OOM。
- 数据量太大sql语句必定很慢。
- 相同商品编号的数据要放到一起。
- 如果走异步