当前位置: 首页> 财经> 产业 > 免费正能量软件下载_免费下载ppt模板网站哪个好_英文网站设计公司_长沙seo霜天

免费正能量软件下载_免费下载ppt模板网站哪个好_英文网站设计公司_长沙seo霜天

时间:2025/8/1 0:57:21来源:https://blog.csdn.net/weixin_49723367/article/details/146243704 浏览次数:1次
免费正能量软件下载_免费下载ppt模板网站哪个好_英文网站设计公司_长沙seo霜天

首先注入

private final SqlSessionFactory sqlSessionFactory;private final static int BATCH_SIZE = 200; //保存数据条数private final static int THREAD_POOL_SIZE = 15; // 线程池大小

然后把保存的数据根据BATCH_SIZE 切割成多个批次封装起来:

 /*** 将数据分成多个批次** @param data      原始数据* @param batchSize 每批次的大小* @return 分片后的数据列表*/public static <T> List<List<T>> splitData(List<T> data, int batchSize) {List<List<T>> batches = new ArrayList<>();for (int i = 0; i < data.size(); i += batchSize) {int end = Math.min(i + batchSize, data.size());batches.add(data.subList(i, end));}return batches;}

然后使用多线程方式实现保存数据,此数据不能使用@Transactional方式,只能手动提交

  public void minusTwoFloor(List<DtsDigitalTwinModel> assetsDetailsInfos) {List<List<DtsDigitalTwinModel>> twinModelList = splitData(assetsDetailsInfos, BATCH_SIZE);// 创建线程池ExecutorService executorService = Executors.newFixedThreadPool(THREAD_POOL_SIZE);// 使用 CountDownLatch 确保所有线程完成后主线程才继续CountDownLatch latch = new CountDownLatch(twinModelList.size());// 提交任务到线程池for (List<DtsDigitalTwinModel> batch : twinModelList) {executorService.submit(() -> {try (SqlSession sqlSession = sqlSessionFactory.openSession()){//todo 此处写批量保存this.saveBatch(batch);sqlSession.commit();} finally {latch.countDown(); // 任务完成,计数器减一}});}// 等待所有任务完成try {latch.await();} catch (InterruptedException e) {e.printStackTrace();}// 关闭线程池executorService.shutdown();log.info("数据保存完成!");}
关键字:免费正能量软件下载_免费下载ppt模板网站哪个好_英文网站设计公司_长沙seo霜天

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: