此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 Spring Integration 6.4.3! |
Reactive Advice
从版本 5.3 开始,ReactiveRequestHandlerAdvice
可用于生成Mono
答复。
一个BiFunction<Message<?>, Mono<?>, Publisher<?>>
必须为此建议提供,并且它是从Mono.transform()
运算符对拦截的handleRequestMessage()
方法实现。
通常,这样的Mono
当我们想通过以下方式控制网络波动时,自定义是必要的timeout()
,retry()
以及类似的支持运营商。
例如,当我们可以通过 WebFlux 客户端发出 HTTP 请求时,我们可以使用以下配置来等待响应的时间不超过 5 秒:
.handle(WebFlux.outboundGateway("https://somehost/"),
e -> e.customizeMonoReply((message, mono) -> mono.timeout(Duration.ofSeconds(5))));
这message
argument 是消息处理程序的请求消息,可用于确定请求范围的属性。
这mono
参数是此消息处理程序的handleRequestMessage()
方法实现。
嵌套的Mono.transform()
也可以从此函数中调用以应用,例如,Reactive Circuit Breaker。