Мне нужно вызвать 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);
*/
}
}
}
Иногда он дает нулевой результат, а иногда работает нормально.Есть ли другой способ намека на это