导入材料:节目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的上传数据,现在数据量增加了,想做一个新思路的解决方法,求大家给点点子,欢迎一起研究这个问题
感谢:各位大哥谢谢你们的建议,我回去整理整理,最终我用了谁的建议,我就把币给谁,币不多一点心意,莫怪莫怪。最终我会把我的实现思路共享给大家。
关于Java批量导入节目,求思路
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
7条回答 默认 最新
- zhangsf1985 2018-01-26 11:02关注
可以考虑异步的方式 :
1.文件上传, 现在Html5应该能切割上传, 但是对带宽压力减轻不明显,因为文件在切割还是那么大。
2.上传后, 异步解压缩。
3. 实际上300个节目不值得用多线程处理, 因为瓶颈很可能在数据库插入那块, 所以这块可以一次读入后, 使用batch insert到数据库中。本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥30 Matlab打开默认名称带有/的光谱数据
- ¥50 easyExcel模板 动态单元格合并列
- ¥15 res.rows如何取值使用
- ¥15 在odoo17开发环境中,怎么实现库存管理系统,或独立模块设计与AGV小车对接?开发方面应如何设计和开发?请详细解释MES或WMS在与AGV小车对接时需完成的设计和开发
- ¥15 CSP算法实现EEG特征提取,哪一步错了?
- ¥15 游戏盾如何溯源服务器真实ip?需要30个字。后面的字是凑数的
- ¥15 vue3前端取消收藏的不会引用collectId
- ¥15 delphi7 HMAC_SHA256方式加密
- ¥15 关于#qt#的问题:我想实现qcustomplot完成坐标轴
- ¥15 下列c语言代码为何输出了多余的空格