huhuhuHR 2018-01-26 07:19 采纳率: 100%
浏览 1528
已采纳

关于Java批量导入节目,求思路

导入材料:节目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的上传数据,现在数据量增加了,想做一个新思路的解决方法,求大家给点点子,欢迎一起研究这个问题
感谢:各位大哥谢谢你们的建议,我回去整理整理,最终我用了谁的建议,我就把币给谁,币不多一点心意,莫怪莫怪。最终我会把我的实现思路共享给大家。

  • 写回答

7条回答 默认 最新

  • zhangsf1985 2018-01-26 11:02
    关注

    可以考虑异步的方式 :
    1.文件上传, 现在Html5应该能切割上传, 但是对带宽压力减轻不明显,因为文件在切割还是那么大。
    2.上传后, 异步解压缩。
    3. 实际上300个节目不值得用多线程处理, 因为瓶颈很可能在数据库插入那块, 所以这块可以一次读入后, 使用batch insert到数据库中。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(6条)

报告相同问题?

悬赏问题

  • ¥15 Qt下使用tcp获取数据的详细操作
  • ¥15 idea右下角设置编码是灰色的
  • ¥15 全志H618ROM新增分区
  • ¥20 jupyter保存图像功能的实现
  • ¥15 在grasshopper里DrawViewportWires更改预览后,禁用电池仍然显示
  • ¥15 NAO机器人的录音程序保存问题
  • ¥15 C#读写EXCEL文件,不同编译
  • ¥15 MapReduce结果输出到HBase,一直连接不上MySQL
  • ¥15 扩散模型sd.webui使用时报错“Nonetype”
  • ¥15 stm32流水灯+呼吸灯+外部中断按键