@turdubekov
Студент

Почему асинхронный WebClient не обрабатывает до конца?

Добрый день!
у меня есть 2 api endpoint, по которым стучится Webclient.
Дело в том, что если я выкармливаю данные из 200 объектов, то он обрабатывает не до конца.
в итоге в базе должно быть 200 записей, но количество записей всегда по разному.
код:
public void getAdditionalInfo(List<ExcelModel> excelList) {
        log.warn("Beginning send request to: ST-helper and Sybase-helper API`s");
        for (ExcelModel excel : excelList) {
            Mono<Response> postgresResponse = webClient.get()
                    .uri(postgres + excel.getSuip())
                    .retrieve()
                    .bodyToMono(Response.class)
                    .timeout(Duration.ofSeconds(3000000))
                    .filter(Response::getResult);

            // When request completed
            postgresResponse.subscribe(response -> {
                excel.setAmount(response.getAmount());
                excel.setRequisite(response.getRequisite());
                excel.setIsValidated(true);
                excelModelRepository.save(excel);
                log.info("postgres: {}", excel);
            });

//**********************************************************************************************

           //  Sending async request to sybase (old base):
            Mono<Response> sybaseResponse = webClient.get()
                    .uri(sybase + excel.getTransactionID())
                    .retrieve()
                    .bodyToMono(Response.class)
                    .timeout(Duration.ofSeconds(3000000))
                    .filter(Response::getResult);

            // When request completed
            sybaseResponse.subscribe(response -> {
                excel.setAmount(response.getAmount());
                excel.setRequisite(response.getRequisite());
                excel.setIsValidated(true);
                excelModelRepository.save(excel);
                log.info("sybase: {}", excel);
            });
        }
    }
  • Вопрос задан
  • 82 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы