小天管理 发表于 10月10日 发表于 10月10日 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 所以这个该咋做啊 -
已推荐帖子
创建帐户或登录来提出意见
您需要成为会员才能提出意见
创建帐户
注册成为会员.只要几个简单步骤!
注册帐户登录
已经有帐户? 请在此处登录.
现在登录