java - 无法订阅 Mono<XXX> spring webflux

标签 java spring-boot spring-webflux

我正在尝试编写一个简单的代码,它需要一些日期并使用响应式(Reactive) 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);
        });

lastSuccessTime 包含“1970-01-01”,我正在尝试将其打印出来,但似乎它没有这样做,看不到我丢失的内容

感谢您的帮助!

最佳答案

我认为您的代码中有一个错误: 订阅你创建了一个通量但不做任何事情 如果你想获得所有savedPayers,你应该订阅flux,然后打印每个元素。 你可以这样做。 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));

关于java - 无法订阅 Mono<XXX> spring webflux,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60028907/

相关文章:

spring-boot - 认证2 : Spring Boot 2: Auth Server/oauth/check_token returns user_name as null

spring-cloud-netflix - 如何将Hystrix与Spring WebFlux WebClient一起使用?

java - 如何 .trim() Vaadin 组合框的显示字段?

java - 使用 SciJava 在 jupyter 笔记本中运行简单脚本时出错

java - sql和java查询数据

java - 具有不同布局的多个按钮

java - 如何使用Spring Boot为传记后端制作实体类和 Controller ?

java - Hystrix 仪表板不工作

java - spring-boot-starter-web-reactive + spring-boot-starter-actuator 不能一起工作?

java - Spring 5 - 如何提供静态资源