【问题标题】:Time Elapsed for Mono<Void> WebfluxMono<Void> Webflux 所用的时间
【发布时间】:2021-12-17 13:43:16
【问题描述】:

我正在调用一个返回 Void 的 post 端点。我试图让时间流逝。 似乎它没有调用端点。 doOnSuccess 也没有被调用。

    public void createTask(CreateTaskDTO task) {
    
        client
                .post()
                .uri(path)
                .body(BodyInserters.fromValue(task))
                .exchangeToMono(response -> response.bodyToMono(Void.class))
                .elapsed()
                .doOnSuccess(
                        tuple -> {
                          
   Status.incrementTaskCreationCount(task.getLoginIds().size());
                          Status.incrementWriteCount();
                          log.info(
                                  "time taken by the ServiceImpl createTask=[{}] for {}",
                                  tuple.getT1(),
                                  task);
                        })
                .map(Tuple2::getT2)
                .subscribe();
    }

【问题讨论】:

    标签: java spring spring-boot spring-webflux project-reactor


    【解决方案1】:

    elapsed() 测量从订阅 MonoMono 发出项目之间的时间。但是,Mono&lt;Void&gt; 响应不会发出任何值。

    您可以使用thenReturn 继续序列:

    .exchangeToMono(response -> response.bodyToMono(Void.class))
    .thenReturn(true)
    .elapsed()
    

    【讨论】:

      猜你喜欢
      • 2021-11-09
      • 2021-05-08
      • 2020-10-08
      • 2019-09-19
      • 1970-01-01
      • 2018-12-12
      • 2020-09-18
      • 1970-01-01
      • 2021-11-18
      相关资源
      最近更新 更多