Top.Mail.Ru
Ответы
Аватар пользователя
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+3

Как асинхронно отправлять HTTPS запросы в Spring boot

Добрый вечер! с столкнулся с такой проблемой что мне нужно в App потянуть асинхронность, чтобы убрать задержку и увеличить пропускную способность. И так меня есть метод, который с помощью RestTemplate отправляет get запрос в сторонний сервер и получает наименование компании в list и сохранять

123456789101112
     public void saveCompanyDetails() { 
    CompletableFuture<Void> future = CompletableFuture.runAsync(() -> { 
        ResponseEntity<List<CompanyEntity>> rateResponse = 
                restTemplate.exchange(iexApiHost + iexApiKey, 
                        HttpMethod.GET, null, new ParameterizedTypeReference<List<CompanyEntity>>() {}); 
 
        List<CompanyEntity> companyList = rateResponse.getBody(); 
        if(!CollectionUtils.isEmpty(companyList)) { 
            companyRepository.saveAll(companyList); 
        } 
    }, fixedPool); 
} 

У меня не получается сделать так чтобы запросы выполнялись асинхронно. Может кто подскажет как здесь можно потянуть асинхронность ?

По дате
По рейтингу
Аватар пользователя
Просветленный

Еще можно использовать аннотацию @Async вот гайд посмотри https://www.baeldung.com/spring-async . Я в этих фтючах не сильно шарю, но думаю, что в твоем случае в конце метода надо добавить

1
 future.get() 

и должно заработать