[英]Suggestion : Making parallel call from my service to another micro service
我有一個要求如下
我想讓第二步平行。 現在我根據數據知道列表中不會出現超過 15 條記錄。 所以我想為此使用 executorservice 。
Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors())
現在我不是很自信
ExecutorService
是我的場景的最佳方法。 或者我應該用別的東西Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors())
這樣的新執行Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors())
還是讓容器使用@Autowired
注入一個托管的 Executor由於您有一個記錄List
,您可以使用parallelStream
遍歷它。
List<SomeObject> objectList = resultFromDB();
objectList.parallelStream()
.map(obj -> makeApiCallInParallel(obj))
.collect(Collectors.toList());
parallelStream
將parallelStream
執行 API 調用。 並行調用的數量受 CPU 線程數量的限制。
您可以使用 JVM 屬性增加它:
-Djava.util.concurrent.ForkJoinPool.common.parallelism=20
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.