使用java流异步调用和收集restapi结果

8dtrkrch  于 2021-07-06  发布在  Java
关注(0)|答案(0)|浏览(226)

这个问题与通过流并行执行多个查询有关,这表明 CompletableFuture 可以与流一起用于异步调用。然而,我想知道什么样的最佳实践将是当电话数量是未知的?
以下面的代码为例。输入未知大小的地址列表。我们的目标是使用restapi调用来查找居住在这些地址的所有人。需要注意的是,只有在成功处理了所有调用后才应返回列表。

List<AddressId> addressIdList = getAllAddressId();
List<People> people = new ArrayList<>();
for (AddressId addressId : addressIdList) {
    MultiValueMap<String, AddressId> uriParameter = new LinkedMultiValueMap<>();
    uriParameter.add("addressId", addressId);
    // Using RestTemplate
    List<People> list = lookUpUsingRestAPI(uriParameter);
    people.addAll(list);
}
return people;

直觉上,这段代码有异味。由于我对java流/并发编程不是很精通,所以我不想看到这段代码的缺陷,因此欢迎提出任何建议。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题