API 响应以下内容 "application/json"
body 类型构造:
{
"transactions": [
{
"transaction": "1",
},
{
"transaction": "2",
},
{
"transaction": "3",
}
]
}
基本上我将它映射到..
public class Transactions {
private List<Transaction> transactions;
...
}
目前我将其检索为 Mono<Transactions>
,但它有缺点 - 它在内存中缓冲整个列表。
与 Spring Reactive API
,是否可以将交易列表作为 Flux 处理,而不将其作为一个整体缓冲在内存中?
非常感谢!
最佳答案
在评论中收到更多信息后,这就是问题的答案。
如果 webflux 应用程序正在对非 webflux api 进行阻塞调用,则应采取措施将调用包装在 Mono#fromCallable
中。并放置在它自己的线程上,以便它不会干扰其余的非阻塞线程。所有这些都记录在 react 器文档中的 faq 下。
阻塞调用将始终返回单个响应,即 Mono
所以在上面的情况下它将返回 List<Transaction>
.
由于我们在阻塞调用后已经有了完整的列表,所以大多数时候没有实际目的将其放入通量中,然后将它们一一推送到客户端。
因此返回 Mono<List<Transaction>>
到调用客户端可能是可行的方法。
关于java - 是否可以流式传输嵌套 Json 列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60154848/