跳到主要内容

Reactive Advice

QWen Plus 中英对照 Reactive Advice

从 5.3 版本开始,可以使用 ReactiveRequestHandlerAdvice 来处理生成 Mono 回复的请求消息处理器。为此建议提供一个 BiFunction<Message<?>, Mono<?>, Publisher<?>>,它会在拦截的 handleRequestMessage() 方法实现所生成的回复上调用 Mono.transform() 操作符时被调用。通常,当我们希望通过 timeout()retry() 等支持操作符来控制网络波动时,这种 Mono 定制是必要的。例如,当我们在 WebFlux 客户端上发起 HTTP 请求时,我们可以使用以下配置来确保等待响应的时间不超过 5 秒:

.handle(WebFlux.outboundGateway("https://somehost/"),
e -> e.customizeMonoReply((message, mono) -> mono.timeout(Duration.ofSeconds(5))));
java

message 参数是消息处理器的请求消息,可用于确定请求范围内的属性。mono 参数是此消息处理器的 handleRequestMessage() 方法实现的结果。也可以从该函数调用嵌套的 Mono.transform(),例如应用 Reactive Circuit Breaker