【发布时间】:2016-02-28 09:23:17
【问题描述】:
情况就是这样,假设我有一个端点并接收一个请求,该请求在一段时间或其他时间范围内检索数据,该请求的结果是我从数据库中获得的一个大列表,比如说一个列表一个“人”对象,然后对于每个人对象,我必须调用另一个方法,它可能有点慢,如果我必须等到它对这个的所有元素执行,它会延迟很多响应大名单。
我想要完成的是我可以通过一个休息端点流式传输响应,而我的前端不必等到所有这个列表都被处理后才能开始在屏幕上显示它。
所以我在这里有一个困惑,我知道使用spring @Async 的异步方法即使任务仍未完成,它也会使消费者能够给出响应,但据我了解,这是在发送电子邮件或您不会在屏幕上显示其回复的任何其他任务或一系列任务的情况下很有帮助。
但是对于要在屏幕上显示的响应,我想我应该在准备好整个“人”对象后立即流式传输大量数据。
实现此目的的正确方法是什么?在这种情况下,Async 方法是否有帮助,或者我应该只找到一种方法来检测我何时形成了一个人对象来流式传输它?或者我大错特错了,我不理解异步和流的概念。
一个小例子会有所帮助。
谢谢。
【问题讨论】:
标签: rest spring-mvc asynchronous stream streaming