【问题标题】:Difference between Spring Async, Async with CompletableFuture and Java8 parallel streamSpring Async、Async with CompletableFuture 和 Java8 并行流之间的区别
【发布时间】:2022-08-20 21:43:03
【问题描述】:

我正在处理列表以验证列表数据,然后使用 MapStruct 将其映射到 Db 实体,最后将列表保存在多个表中作为批处理 - 使用 Spring 数据 JPA 的父表和子表。我正在使用并行流来实现来完成这个过程。此外,我需要持久数据的结果,以响应我要导出到一个文件以上传的所有最终数据。

在我的情况下,哪一个套房最好,为什么?

List<Data> data; //10K records

converting into list of list with 1K records
List<List<Data>> datalist; //1K records in each list

datalist.parrallelStream.foreach( data-> 
{
    validate(data);
    List<Entity> list = mapToEntity(data);
    EntityRepo.saveAll(list); //batch_size = 1000; oracle db
}
) 

class Entity {
@Id
String id; // generating Id manually in my code using UUID. 
}

    标签: java multithreading java-stream completable-future spring-async


    【解决方案1】:

    异步 - 这将使处理异步并使其独立工作。

    Java 8 parallelStream - 根据输入数据创建后续线程并同时处理它。

    在您的情况下,数据将在多个线程中独立处理。

    【讨论】:

      猜你喜欢
      • 2015-01-06
      • 2020-09-16
      • 2018-12-05
      • 1970-01-01
      • 2022-08-20
      • 1970-01-01
      • 1970-01-01
      • 2020-08-07
      • 1970-01-01
      相关资源
      最近更新 更多