有这种方案做导入和导出的吗?请帮我分析下利与弊。
以订单为例:
导入,利用exceljs或sheetjs转换成json再分批提交,解析格式:
[{"name":"","mobile","items":[{productId:"",price:"",quantity}]},{...}]
- 可以分批提交,实现进度: 已提交X条,共成功X条,共失败X条等
- 每批返回处理对应行的的结果:成功或失败(原因)
- 也可以做一些基本的验证:长度、数字等验证
导出,带条件查询,然后轮循做分页查询,直接到返回为空,则导出。查询带上last id做查询优化
- 实进导出进度:预计导出X条,已读X条等
主要是想实现导入导出的数据至少在万条以上,避免在页面长时间等待且没有进度提示的现象,给用户制造一个心理预期。同时避免导入与导出占用的内存太多。
导入导出的数据至少在万条以上,讲道理应该做在服务端。轮训这种操作看上去有点无脑,平白提高了qps
上传只是提交任务。然后可以通过其他接口来查看任务执行进度。
任务可以分批做。也可以分批创建任务。