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条)

报告相同问题?

悬赏问题

  • ¥50 关于#微信小程序#的问题:微信小程序支持h5实现webrtc h264 h265低延迟传输渲染,能付费帮我们解决一下吗
  • ¥20 请问ansys License manager 这个问题如何解决
  • ¥15 memory.limit()' is no longer supported
  • ¥15 基于stm32f4产生两路pwm信号并可由串口通信调节
  • ¥15 C++/QT设置函数调用条件(多个功能调用同一,且各自调用条件不同)
  • ¥15 UE5样条线生成的网格UV问题
  • ¥15 如何用最短的时间大致看懂springboot+vue的项目
  • ¥15 (有偿)懂数值分析和含时变参数微分方程的来
  • ¥15 abaqus随机生成二维颗粒
  • ¥15 安装ansys许可证管理器时出现了这个问题,如何解决?