簡體   English   中英

Spring Async、Async with CompletableFuture 和 Java8 並行 stream 之間的區別

[英]Difference between Spring Async, Async with CompletableFuture and Java8 parallel stream

我正在處理列表以驗證列表數據,然后 map 使用 MapStruct 將其保存到 Db 實體,最后將列表作為批處理保存在多個表中 - 使用 Spring 數據 Z9CE3D1BD8890F16A0C7C46Z09359508 的父表和子表。 我正在使用並行stream來實現來完成這個過程。 此外,我需要持久數據的結果,以響應我導出到一個文件以上傳的所有最終數據。

在我的情況下,哪一個套房最好,為什么?

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 8 parallelStream - 根據輸入數據創建后續線程並同時對其進行處理。

在您的情況下,數據將在多個線程中獨立處理。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM