当前位置: 首页 > 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.sczhlp.com/news/44065/

相关文章:

  • axure做网站下拉菜单网站建设是干什么的
  • 有专业做网站的学校吗网络营销在哪里学比较靠谱
  • 淘宝天猫优惠券网站怎么做无锡百度快照优化排名
  • 做网站宁波有什么的网络公司制作网页多少钱
  • 网站分类有哪些碉堡了seo博客
  • 系统安装教程
  • 专用车网站建设哪家好广州网站优化多少钱
  • 假网站怎么做呢100个常用的关键词
  • 西乡县门户网站外链相册
  • 如何提高网站转化率企业网站怎么注册
  • 广州做外贸网站多少钱seo顾问是什么职业
  • mil后缀网站seo教程技术
  • 兰州网站开发搜索引擎优化工作
  • 小型的游戏网站怎么做软件外包
  • wordpress数据怎么备份google seo是什么意思
  • 国内做网站上市公司交友网站有哪些
  • 做桑拿网站挣钱吗用html制作个人网页
  • 自然语言处理库中死代码的危害与清理
  • 安阳市住房和城乡建设厅网站百度关键词点击排名
  • 云南网站seo外包网站点击排名优化
  • 广州越秀区疫情本溪seo优化
  • 温州免费做网站网站注册要多少钱
  • 营销型企业网站一般具有哪些功能n127网推广
  • 怎么做个人网站的seo的基本步骤
  • scheme语言中,let 和 let* 的用法
  • Scheme 语言实现快速排序算法
  • 消息中间件-Nats_GUI 框架-NiceGUI
  • 铁门关市建设局网站产品推广方法
  • 网站关键词优化是什么2022最新永久地域网名
  • ip加端口可以做网站吗网站设计制作公司