【问题标题】:Unable to subscribe to Mono<XXX> spring webflux无法订阅 Mono<XXX> spring webflux
【发布时间】:2020-05-18 14:23:54
【问题描述】:

我正在尝试使用响应式弹性搜索编写一个简单的代码,该代码需要一些日期并对其进行处理 这是代码 sn-p -

            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”,我正在尝试将其打印出来,但它似乎没有这样做,看不到我缺少什么

感谢您的帮助!

【问题讨论】:

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

标签: java spring-boot spring-webflux


【解决方案1】:

我认为您的代码有错误: 在订阅你创建一个通量但什么都不做 如果您想获取所有已保存的付款人,您应该订阅通量,然后打印每个元素。 你可以这样做。 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));

【讨论】:

    猜你喜欢
    • 2021-06-27
    • 1970-01-01
    • 2018-12-12
    • 1970-01-01
    • 2021-11-18
    • 2019-05-18
    • 2021-11-09
    • 2021-09-30
    • 2021-11-03
    相关资源
    最近更新 更多