跳转到内容
彼岸论坛
欢迎抵达彼岸 彼岸花开 此处谁在 -彼岸论坛

已推荐帖子

发表于
  • SpringBoot WebFlux 3.1.0 + redisson 3.27.1 + redis stack 7 单机
  • webflux control 要求业务代码返回 mono
    @Bean
    public RouterFunction<ServerResponse> route(CacheHandler cacheHandler) {
        return RouterFunctions.route()
                .GET("......", cacheHandler::xxxxxxx)
                .build();
  • redissonReactiveClient 是 client

    • redissonReactiveClient.getSearch(codec).search(.....); 查询 redis 返回 mono<SearchResult>
    • 所以 cacheHandler::xxxxxxx 中 call 上面的查询
    • 如果做分页的话,SearchResult 里面有 total 和 List<Document>当前页数据
  • 但是我如何在一个请求中查出所有数据呢,也就是 reactive 编程怎么搞个循环查询啊

    • 只能将第一次查询的 mono block()拿到 total 吗,但是貌似 reactive 编程不该是这个写法...
    • 如果 Mono<SearchResult> cc = client.search(..第一页数据).cache();
      • 然后 return cc.flatMap(c -> client.search(.. c.getTotal, 然后传参剩下所有数据)).concatWith(cc).collectList();
      • 测试之后返回空的,因为 client.search 本身也是异步多线程的,这个操作在另一个线程进行,webflux 就给我空数据了,还有就是第二个 search 也拿不到真正的 total

所以这个该咋做啊 -

创建帐户或登录来提出意见

您需要成为会员才能提出意见

创建帐户

注册成为会员.只要几个简单步骤!

注册帐户

登录

已经有帐户? 请在此处登录.

现在登录
  • 游客注册

    游客注册

  • 会员

  • 最新的状态更新

    没有最新的状态更新
  • 最近查看

    • 没有会员查看此页面.
×
×
  • 创建新的...