当前位置: 首页 > news >正文

郝友做的网站今日国际重大新闻

郝友做的网站,今日国际重大新闻,高新区网站建设的建议,浙江省住房城乡建设厅官网问题情境: 项目中存在web页面点击一键导出,导出所有数据对应的pdf文件,由于有些pdf文件是实时生成的,之前最简答的写法for循环处理速度太慢,超过了nginx配置的最大响应时间了,且对用户交互体验上很不友好&…

问题情境:

项目中存在web页面点击一键导出,导出所有数据对应的pdf文件,由于有些pdf文件是实时生成的,之前最简答的写法for循环处理速度太慢,超过了nginx配置的最大响应时间了,且对用户交互体验上很不友好,所以进一步进行优化。

解决方案:

1.对大量的数据进行分段处理;(向上取余)
代码示例:

public List<List<FrApplyGuaranteeInfo>> segmentList(List<FrApplyGuaranteeInfo> list ,int segmentSize) {int limit = (list.size() + segmentSize - 1) / segmentSize;List<List<FrApplyGuaranteeInfo>> segmentList =Stream.iterate(0, n -> n + 1).limit(limit).parallel().map(a -> list.stream().skip(a * segmentSize).limit(segmentSize).parallel().collect(Collectors.toList())).collect(Collectors.toList());return segmentList;}

2.通过threadPoolTaskExcetor.submit()方法进行多线程任务处理
示例代码:
第一步分段处理后的list

lists.forEach({list->{threadPoolExecutor.submit(new xxxxTask());
})

第二步:具体的task需要实现callalbe
示例代码如下:

@Slf4j
public class DownloadLetterZipTask implements Callable {// 需要预审的记录    private List<FrApplyGuaranteeInfo> dataList;private ZipOutputStream zipOutputStream;private CountDownLatch countDownLatch;private IFrApplyGuaranteeInfoService applyGuaranteeInfoService;public DownloadLetterZipTask(List<FrApplyGuaranteeInfo> dataList, ZipOutputStream zipOutputStream, CountDownLatch countDownLatch, IFrApplyGuaranteeInfoService applyGuaranteeInfoService){    this.dataList = dataList;this.zipOutputStream = zipOutputStream;      this.countDownLatch = countDownLatch;      this.applyGuaranteeInfoService = applyGuaranteeInfoService;    }@Overridepublic Object call() throws Exception {log.info("start--------------" + Thread.currentThread().getName());        try {           for (FrApplyGuaranteeInfo applyGuaranteeInfo : dataList) {if (!StringUtils.isEmpty(applyGuaranteeInfo.getAcceptNo())) {try {// 这一步为具体的将文件转为字节数组输出流ByteArrayOutputStream waterOutputStream = applyGuaranteeInfoService.getLetterPdfByteStream(applyGuaranteeInfo.getAcceptNo());byte[] xmpMetadata = waterOutputStream.toByteArray();synchronized (zipOutputStream) {zipOutputStream.putNextEntry(new ZipEntry(applyGuaranteeInfo.getGenerateeLetterNo() + ".pdf"));zipOutputStream.write(xmpMetadata);zipOutputStream.closeEntry();}} catch (Exception e) {log.error("[一键导出]---acceptNo为{}生成pdf失败", applyGuaranteeInfo.getAcceptNo());}}}} catch (Exception e) {e.printStackTrace();log.error("[xxxx]-批量下载zip失败");} finally {countDownLatch.countDown();}return null;}}
http://www.ds6.com.cn/news/39554.html

相关文章:

  • 材料信息价查询网站有创意的网络营销案例
  • 怎么注册亚马逊跨境电商免费seo
  • 重庆做网站建设的公司哪家好东莞网络推广优化排名
  • 秦皇岛网站建设怎么做好seo内容优化
  • 工装合肥品牌seo
  • 泰国清迈房产网站大全搜索引擎营销的原理是什么
  • 安徽网站建设免费搭建网站
  • 南通公司做网站网站建设制作模板
  • 做旅游网站的数据怎么来软文交易平台
  • 中国互联网协会卢卫南京seo排名优化公司
  • 一个网站需要多少网页如何建立网站
  • 海尔电子商务网站建设预算六六seo基础运营第三讲
  • 微网站的建设模板有哪些二级域名网站查询入口
  • 做网站比较好的比较靠谱的电商培训机构
  • 网站如何在百度上做推广百度搜索榜
  • 哪里网站做的好百度网盘电脑网页版
  • 衡阳北京网站建设搜索引擎收录入口
  • 购物平台网站建设流程持续优化疫情防控举措
  • 南海区建设网站seo优化快速排名技术
  • 网站开发公司售后服务google 官网入口
  • iis配置网站开发环境最近时事热点新闻评论及点评
  • 自己怎样创建网站乐事薯片软文推广
  • 日照哪里做网站想卖产品怎么推广宣传
  • 哪个网站有介绍拿到家做的手工活网站建设计划书
  • 网络营销推广部做什么南昌seo排名
  • 昆明网站开发培训机构西安网红
  • 网络营销工具大全广州品牌seo推广
  • 网站开发用php好吗av手机在线精品
  • 代理充值平台网站百度推广后台登陆首页
  • 展架设计在哪个网站做东莞网络推广系统