Java 无法订阅Mono<;XXX>;春季网络流量

Java 无法订阅Mono<;XXX>;春季网络流量,java,spring-boot,spring-webflux,Java,Spring Boot,Spring Webflux,我正在尝试编写一个简单的代码,使用反应式elasticsearch记录一些日期并对其进行处理 这是代码片段- Mono<LastSuccessTime> lastSuccessTime = getLastSuccessTimeMono(brand); lastSuccessTime.subscribe(x -> { String lastTime = x.getLastSuccessTime();

我正在尝试编写一个简单的代码,使用反应式elasticsearch记录一些日期并对其进行处理 这是代码片段-

            Mono<LastSuccessTime> lastSuccessTime = getLastSuccessTimeMono(brand);

        lastSuccessTime.subscribe(x -> {
            String lastTime = x.getLastSuccessTime();
            log.info("*******test********** : " + lastTime);
            DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
            String lastTimeStr = formatter.format(LocalDateTime.parse(lastTime, formatter).minusSeconds(10));
            Flux<Player> savedPlayers = savePlayersFromDbService.savePlayersFromSpecificBrand(brand, lastTimeStr);
            log.debug(":migrateForBrand: saved players for brand = " + brand + " are = " + savedPlayers);
        });
Mono lastSuccessTime=getLastSuccessTimeMono(品牌);
lastSuccessTime.订阅(x->{
字符串lastTime=x.getLastSuccessTime();
log.info(“*******测试**********:”+上次);
DateTimeFormatter formatter=模式的DateTimeFormatter.of(“yyyy-MM-dd HH:MM:ss”);
字符串lastTimeStr=formatter.format(LocalDateTime.parse(lastTime,formatter.minusSeconds(10));
Flux savedPlayers=SavePlayers fromDbService.SavePlayers fromSpecific brand(brand,lastTimeStr);
log.debug(“:migrateForBrand:brand=“+brand+”are=“+savedPlayers”的已保存播放器);
});
lastSuccessTime包含“1970-01-01”,我正试图将其打印出来,但它似乎不起作用,看不出我遗漏了什么


谢谢你的帮助

我认为您的代码中有一个错误: 在你创造一个流量,但什么也不做 如果你想得到所有保存的页面,你应该订阅通量,然后打印每个元素。 你可以这样做。 Flux具有惰性评估,因此如果您不订阅它,您将不会收到任何结果

  Mono<LastSuccessTime> lastSuccessTime = getLastSuccessTimeMono(brand);

    lastSuccessTime.flatMapMany(x -> {
        String lastTime = x.getLastSuccessTime();
        log.info("*******test********** : " + lastTime);
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        String lastTimeStr = formatter.format(LocalDateTime.parse(lastTime, formatter).minusSeconds(10));
        Flux<Player> savedPlayers = savePlayersFromDbService.savePlayersFromSpecificBrand(brand, lastTimeStr);
        return savedPlayers;
    })
    .collectList()
    .subscribe(players ->             log.debug(":migrateForBrand: saved players for brand = " + brand + " are = " + players));
Mono lastSuccessTime=getLastSuccessTimeMono(品牌);
lastSuccessTime.flatMapMany(x->{
字符串lastTime=x.getLastSuccessTime();
log.info(“*******测试**********:”+上次);
DateTimeFormatter formatter=模式的DateTimeFormatter.of(“yyyy-MM-dd HH:MM:ss”);
字符串lastTimeStr=formatter.format(LocalDateTime.parse(lastTime,formatter.minusSeconds(10));
Flux savedPlayers=SavePlayers fromDbService.SavePlayers fromSpecific brand(brand,lastTimeStr);
返回savedPlayers;
})
.LIST()
.subscribe(players->log.debug(“:migrateForBrand:saved players for brand=“+brand+”are=“+players”);

什么是
getLastSuccessTimeMono
,因为您可能从中得到零。请发布您的完整代码,而不仅仅是一段代码。如果这是您正在运行的全部代码,则在程序退出之前,记录器的缓冲区可能无法及时放入文件/控制台。