gpt4 book ai didi

spring - Spring Webflux Rest API(带注释的 Controller )的总处理时间

转载 作者:行者123 更新时间:2023-12-02 08:44:01 24 4
gpt4 key购买 nike

我们正在开始使用 Spring Webflux,并且我们正在使用 REST API 的带注释的 Controller 。我们想要测量 Spring boot 服务器处理请求所需的总时间。看起来我们可以使用 Spring WebFilter但是我不确定如何设置 StartTime (ServerWebExchange 或其他请求 header 中的某种属性)?另外,一旦响应完成,我们如何获取 startTime 并计算时间差?

谢谢!

最佳答案

是的,您可以使用WebFilter来实现此目的。请参阅下面的示例代码:

@Component
@Slf4j
public class RequestTimingFilter implements WebFilter {
@Override
public Mono<Void> filter(ServerWebExchange exchange, WebFilterChain chain) {
long startMillis = System.currentTimeMillis();
return chain.filter(exchange)
.doOnSuccess(aVoid ->
log.info("Elapsed Time: {}ms", System.currentTimeMillis() - startMillis)
);
}
}

请注意 doOnSuccess 调用,该调用仅在请求成功时执行。对于错误,您可以添加 doOnError 调用来查看请求时间。

关于spring - Spring Webflux Rest API(带注释的 Controller )的总处理时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50296843/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com