首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >获取web客户端web流量的响应时间

获取web客户端web流量的响应时间
EN

Stack Overflow用户
提问于 2019-03-10 16:18:16
回答 2查看 5.2K关注 0票数 5

只想知道有没有办法获得spring web-flux的web客户端的响应时间?

EN

回答 2

Stack Overflow用户

发布于 2019-03-11 17:25:43

您也可以使用elapsed()来处理这类事情

代码语言:javascript
运行
复制
webClient.get().uri("/bla").retrieve()
     .bodyToMono(String.class)
     .elapsed()  // map the stream's time into our streams data
     .doOnNext(tuple -> log.info("Milliseconds for retrieving {}", tuple.getT1()))
     .map(Tuple2::getT2) // after outputting the measurement, return the data only

请注意,elapsed()会经历整个反应流,所以如果您在webClient之前执行某些操作...部分,你应该在这之前放一个elapsed() --这会重置计时器。

票数 7
EN

Stack Overflow用户

发布于 2019-03-10 21:13:27

有了Spring Boot,你就有了内置的度量标准。参见issue

如果你想实现你的自定义秒表,你可以这样做:

代码语言:javascript
运行
复制
Mono<String> resultMono = Mono.subscriberContext()
        .flatMap(context -> webClient.get()
                .uri("/foo")
                .retrieve()
                .bodyToMono(String.class)
                .doOnNext(ignored -> log.info("Execution duration is {} ms",
                        System.currentTimeMillis() - context.<Long>get("stopWatch"))))
        .subscriberContext(context -> context.put("stopWatch",
                System.currentTimeMillis()));
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55085767

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档