我有四个服务。
One will give hotels which is matching to the query.
One will give City which is matching to the query.
One will give Airports which is matching to the query.
One will give Metro stations which is matching to the query.
对于每个 HTTP 请求,我将点击这四个服务,并合并来自四个服务的响应并返回。
所以我的示例代码就像
for(EntityGroups entityGroups: EntityGroups.values()){
Callable<Response> callable = new XCallable(entityTypetoFetch, searchQuery);
Future<List<Entity>> listFuture = executor.submit(callable);
entityTypeAndFutureMap.put(entityTypetoFetch, listFuture);
}
在此之后,我在 for 循环中得到所有响应
trainStationList = entityTypeAndFutureMap.get(EntityGroups.TRAIN_STATION).get();
landmarkEntities = entityTypeAndFutureMap.get(EntityGroups.LANDMARK_GROUP).get();
cityEntities = entityTypeAndFutureMap.get(EntityGroups.CITY_GROUP).get();
hotelEntities = entityTypeAndFutureMap.get(EntityGroups.HOTEL_GROUP).get();
因为我希望所有列表合并并做出最终响应。我正在打一个阻塞电话。我只想合并这些列表并返回。如果我在这里使用 completablefuture,会有帮助吗?
到目前为止,随着 TPS 的增加,我的 CPU 使用率非常高。增加机器是有帮助的,但还有什么优化的方法来解决这个问题吗?
慕侠2389804
相关分类