Spring WebFlux 和 WebClient 更改对错误的响应
Spring WebFlux and WebClient change response on error
我有一些控制器方法,比如
@PostMapping("/*")
fun proxy(@RequestBody body: String): Mono<ByteArray> {
return roundRobinBean.getNext()
.post()
.uri("/api")
.body(BodyInserters.fromObject(body))
.retrieve()
.bodyToMono<ByteArray>()
.doOnSuccess{
threadPool.submit(PutToCacheJob(body, it, cacheBean))
}
.doOnError{
logger.error(it.message, it)
}
}
roundRobinBean return 某些主机的 WebClient。如果我收到连接超时异常或收到 500 响应,我需要调用另一台主机或从缓存中获取 return 数据。是否有一些用于更改内部数据的处理程序?
您可以使用 onErrorResume
运算符,它可以让您在出现错误时定义回退。
我有一些控制器方法,比如
@PostMapping("/*")
fun proxy(@RequestBody body: String): Mono<ByteArray> {
return roundRobinBean.getNext()
.post()
.uri("/api")
.body(BodyInserters.fromObject(body))
.retrieve()
.bodyToMono<ByteArray>()
.doOnSuccess{
threadPool.submit(PutToCacheJob(body, it, cacheBean))
}
.doOnError{
logger.error(it.message, it)
}
}
roundRobinBean return 某些主机的 WebClient。如果我收到连接超时异常或收到 500 响应,我需要调用另一台主机或从缓存中获取 return 数据。是否有一些用于更改内部数据的处理程序?
您可以使用 onErrorResume
运算符,它可以让您在出现错误时定义回退。