Mono 已用时间<Void> Webflux

Time Elapsed for Mono<Void> Webflux

我正在调用一个 post 端点 returns 一个 Void。我试图让时间流逝。 它似乎没有调用端点。 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();
    }

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

您可以使用thenReturn继续序列:

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