Многократный вызов API, но ограничение времени - PullRequest
0 голосов
/ 01 апреля 2019

Мне нужно вызвать API с различными значениями @RequestParam, но любой запрос требует времени, отмените запрос и вызовите API со следующим значением параметра

Я использовал java 8 completetableFuture с ограничением по времени3 секунды, но иногда он не работает правильно на сервере

 public class callApi {

      public void requestApi(){

       //I have a list of values
       List<Integer> paramValues = Arrays.asList(100, 101, 102);

       //Now I want to call an api throw service layer
       for(Integer param : paramValues) {
           List<ResponseResult> result = anyService.getResults(param);
        //if any of the request take time more than two second i 
          //have to 
         // cancel the request and call the api with different param 
        //iterated 
          //through the for loop

        //i am using completableFuture like this 
        /*
        CompletableFuture<List<ResponseResult>> completableFuture = 
              CompletableFuture.supplyAsync(() -> {
                        return anyService.getResults(param);
                    }).exceptionally(ex -> null);
         result = completableFuture.get(3, TimeUnit.SECONDS);
      */
      }
     }
    }

Иногда он дает нулевой результат, а иногда работает нормально.Есть ли другой способ намека на это

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...