导入材料:节目excel(excel一行就是一个节目);Zip压缩包(节目图片)。
需求:导入的excel大概有300个节目,图片大概有900张大概2G。
做个假设:一次请求,把上传的excel,zip读入内存;excel把它解析成List,一个元素对应excel的一行。zip解析为一个Map,key图片名字,value图片流。图片流和excel找到映射关系后,做裁图(特定尺寸)保存在服务器静态资源端。然后落值数据库。
思路:前台:new FormData(),multipart/form-data;charset=UTF-8的http的POST请求;后台springmvc的MultipartFile接受两数据。通过解析构造出合理的数据类型,落值一条一条的节目。
矛盾:
1.图片资源过大,考虑用户带宽,请求是通过http协议的。
2.效率问题
3.内存的压力
4.用多线程去提高效率
补充:对于批量这个概率不是太清楚;Zip包里边图片,一个节目对应三张。
前面的假设是针对不超过200M的上传数据,现在数据量增加了,想做一个新思路的解决方法,求大家给点点子,欢迎一起研究这个问题
感谢:各位大哥谢谢你们的建议,我回去整理整理,最终我用了谁的建议,我就把币给谁,币不多一点心意,莫怪莫怪。最终我会把我的实现思路共享给大家。
![](https://profile-avatar.csdnimg.cn/d1f48073c9a84461853466b54b7b8dee_qq_20766085.jpg!4)
关于Java批量导入节目,求思路
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
7条回答 默认 最新
- zhangsf1985 2018-01-26 11:02关注
可以考虑异步的方式 :
1.文件上传, 现在Html5应该能切割上传, 但是对带宽压力减轻不明显,因为文件在切割还是那么大。
2.上传后, 异步解压缩。
3. 实际上300个节目不值得用多线程处理, 因为瓶颈很可能在数据库插入那块, 所以这块可以一次读入后, 使用batch insert到数据库中。本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 宇视监控服务器无法登录
- ¥15 PADS Logic 原理图
- ¥15 PADS Logic 图标
- ¥15 电脑和power bi环境都是英文如何将日期层次结构转换成英文
- ¥15 DruidDataSource一直closing
- ¥20 气象站点数据求取中~
- ¥15 如何获取APP内弹出的网址链接
- ¥15 wifi 图标不见了 不知道怎么办 上不了网 变成小地球了
- ¥50 STM32单片机传感器读取错误
- ¥50 power BI 从Mysql服务器导入数据,但连接进去后显示表无数据