共计 697 个字符,预计需要花费 2 分钟才能阅读完成。
- SpringBoot WebFlux 3.1.0 + redisson 3.27.1 + redis stack 7 单机
- webflux control 要求业务代码返回 mono
@Bean
public RouterFunction route(CacheHandler cacheHandler) {return RouterFunctions.route()
.GET("......", cacheHandler::xxxxxxx)
.build();
-
redissonReactiveClient 是 client
- redissonReactiveClient.getSearch(codec).search(…..); 查询 redis 返回 mono
- 所以 cacheHandler::xxxxxxx 中 call 上面的查询
- 如果做分页的话,SearchResult 里面有 total 和 List
当前页数据
- redissonReactiveClient.getSearch(codec).search(…..); 查询 redis 返回 mono
-
但是我如何在一个请求中查出所有数据呢,也就是 reactive 编程怎么搞个循环查询啊
- 只能将第一次查询的 mono block() 拿到 total 吗,但是貌似 reactive 编程不该是这个写法 …
-
如果 Mono
cc = client.search(.. 第一页数据).cache(); - 然后 return cc.flatMap(c -> client.search(.. c.getTotal, 然后传参剩下所有数据)).concatWith(cc).collectList();
- 测试之后返回空的,因为 client.search 本身也是异步多线程的,这个操作在另一个线程进行,webflux 就给我空数据了,还有就是第二个 search 也拿不到真正的 total
所以这个该咋做啊
–
正文完