使用多线程分别请求,然后将结果聚合处理,提高效率,减少请求时间
 
            ExecutorService service = Executors.newSingleThreadExecutor();
            ExecutorCompletionService<List<CityRankInfo>> ece = new ExecutorCompletionService<>(service);
           ece.submit(() -> {
                return iHotelRankOutService.searchCityRankInfoByRankType(2, req.getTrackid());
            });
            ece.submit(() -> {
                return iHotelRankOutService.searchCityRankInfoByRankType(2, req.getTrackid());
            });
            ece.submit(() -> {
                return iHotelRankOutService.searchCityRankInfoByRankType(2, req.getTrackid());
            });
            Future<List<CityRankInfo>> take1 = ece.take();
            Future<List<CityRankInfo>> take2 = ece.take();
            Future<List<CityRankInfo>> take3 = ece.take();
            if (null != take1 || null != take2 || null != take3) {
                rankInfosList.addAll(take1.get());
                rankInfosList.addAll(take2.get());
                rankInfosList.addAll(take3.get());
            }