【发布时间】:2018-07-24 22:54:05
【问题描述】:
我想知道如何对 REST 或 Web 服务进行多个并行调用,然后加入响应并将其发送到调用 @RestController 的响应中。
类似于以下使用 ComparableFuture 构建的代码,但使用的是 Reactor(Flux, Mono)。
CompletableFuture<Company> companyCompletableFuture = CompletableFuture.supplyAsync(() -> {
return Company.find.where().eq("id", id).findUnique();
});
CompletableFuture<List<Domain>> domainsCompletableFuture = CompletableFuture.supplyAsync(() -> {
return Domain.find.where().eq("company_id", id).findList();
});
// wait for all the data
CompletableFuture allDoneFuture = CompletableFuture.allOf(companyCompletableFuture, domainsCompletableFuture);
allDoneFuture.get(); // wait for all done
company = companyCompletableFuture.get();
domain = domainsCompletableFuture.get()
【问题讨论】:
-
我认为 fork 和 join 符合您的要求?或者您可以使用循环障碍并等待完成?
标签: java spring spring-boot project-reactor