среда, 26 мая 2021 г.

Reactive spring - Get polling

 

Polling GET request of report with 5 times repeat with 1 second delay.


return client

        .get()
.uri(uriBuilder -> uriBuilder
.path("/report/{target}")
.build(target)
)
.retrieve()
.onStatus(HttpStatus::isError, clientResponse -> {
return Mono.error(new ReportException(ReportException.Type.GET));
})
.bodyToMono(MyPayload.class)
.delaySubscription(Duration.ofSeconds(1))
.repeat(5)
.skipUntil(myPayload-> ReportStatus.DONE == myPayload.getReportStatus())
.limitRequest(1)
.doOnError(ex -> log.error("getReport method had broken down...", ex))
.single()
.onErrorResume(NoSuchElementException.class, e -> Mono.empty());

Комментариев нет:

Отправить комментарий