我正在开发一个响应式 quarkus后端服务,它执行以下操作。
- 使用Hibernate Reactive Panache与 postgres 交互从后端获取记录列表
- 使用记录的标识符,从另一个远程服务获取数据。
我正在使用Mutiny来执行反应式流水线。远程服务和数据库集成都以非阻塞方式单独工作。我只需要帮助编写连接这些的管道。例如:如下所示
public Uni<List<Post>> findAllBooks() {
return Book.listAll() // Entity returns Uni<List<Book>> succesfully.
.map(Collection::stream)
.flatMap(book -> postApiClient.getPost(book.getId()) // Reactive postApiClient returns Uni<Post> successfully.
.collect(toList());
我被困在处理一个包装列表的 Uni,然后尝试处理该列表中的单个项目。Uni<List> 或 Multi 对我来说都可以。我只是希望它始终保持非阻塞。