利用CompletableFuture优化查询效率
一、背景
项目中的需要查询第三方接口,但是接口不支持批量查询,为了满足页面3秒钟要求,提升查询效率,所以利用CompletableFuture实现。
二、方案实现
伪代码如下
// 增加自定义线程池
ExecutorService executorService = new ThreadPoolExecutor(2, 2, 0, TimeUnit.SECONDS, new LinkedBlockingDeque<>(12));List<CompletableFuture> futureList = new ArrayList<>();
for(...){futureList.add(CompletableFuture.runAsync(()->setHandler(vo),executorService ));
}
CompletableFuture.allOf(futureList.toArray(new CompletableFuture[0])).join();public void setHandler(vo){// 调用第三方接口
}
另外关于CompletableFuture的实际应用也可以参考这个
【CompletableFuture实战】