[英]Spring WebFlux and WebClient change response on error
I have some controller method like 我有一些控制器方法,例如
@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 for some host. roundRobinBean返回某些主机的WebClient。 If i get connection timeout exception or get 500 response i need call another host or return data from cache.
如果我收到连接超时异常或得到500响应,则需要呼叫另一台主机或从缓存中返回数据。 Have mono some handler for changing inner data?
有单声道的一些处理程序来更改内部数据吗?
您可以使用onErrorResume
运算符,该运算符可让您定义发生错误时的后备状态。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.