Java 无法订阅Mono<;XXX>;春季网络流量
我正在尝试编写一个简单的代码,使用反应式elasticsearch记录一些日期并对其进行处理 这是代码片段-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();
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
,因为您可能从中得到零。请发布您的完整代码,而不仅仅是一段代码。如果这是您正在运行的全部代码,则在程序退出之前,记录器的缓冲区可能无法及时放入文件/控制台。