【问题标题】:Spring WebFlux and WebClient change response on errorSpring WebFlux 和 WebClient 更改错误响应
【发布时间】:2019-08-09 06:59:51
【问题描述】:

我有一些控制器方法,例如

@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 为某些主机返回 WebClient。如果我得到连接超时异常或得到 500 响应,我需要调用另一台主机或从缓存返回数据。有用于更改内部数据的单声道处理程序吗?

【问题讨论】:

    标签: spring-boot spring-webflux spring-webclient


    【解决方案1】:

    您可以使用onErrorResume 运算符,它可以让您在出现错误时定义回退。

    【讨论】:

      猜你喜欢
      • 2021-08-06
      • 1970-01-01
      • 2019-12-04
      • 1970-01-01
      • 2018-05-09
      • 1970-01-01
      • 1970-01-01
      • 2017-08-25
      • 2020-09-02
      相关资源
      最近更新 更多