目前,我的代码如下:
List<Mono<ResponseEntity<String>>> response = queue.stream()
.map(req-> webClient
.post()
.bodyValue(req)
.retrieve()
.toEntity(String.class)
)
.collect(Collectors.toList());
我该如何等待所有答复被接受的那一刻?
如果某些请求失败,我只想重试它们。
我如何实现?
答案 0 :(得分:1)
最简单,最棘手的解决方案是编写一个代码,该代码发送带有重试的单个请求,并仅在成功完成或超出最大限制后才返回。之后,将该代码包装为Runnable的实现,并使用ExecutorService提交所有代码。将期货收集到集合中,并检查它们何时完成。
答案 1 :(得分:1)
我建议不要使用ExecutorService
和Mono
的功能,它们提供了更惯用的解决方案:
Flux