我们请求长时间运行,UI 在响应准备就绪时超时



我有一个角度应用程序和一个弹簧启动应用程序,有一个请求从UI到弹簧启动,大约有100-200个对象,甚至更多,对于这些对象中的每一个,另一个后端系统在一个循环中被调用。 类似的东西..

list.parallelStream().forEach(e->{
//code using rest template for backend.
// add the responses to an array list.
// i can send all these objects to backend at one shot because they have some limitations and dont support it currently. 
});

这需要大量时间才能完成,并且在完成所有请求时,UI 将超时。

我尝试使用执行器框架、forkjoin 或并行,但这还不够。 因为浏览器等待 30-60 秒。

我想切换到向 spring 启动提交请求的任何 any 进程,从 UI 中,我应该能够在时间间隔后检查请求的状态。 我尝试了DeferredResult,@Async,completeable future和StreamingResponseBody等概念。 有没有办法处理这些长时间运行的请求???

其中一些概念有效,但是当输入大小增加时,它们也无法正常工作。 我如何设法获取我的请求的状态并使用一些进度条等来显示用户。 还是更好的方法?

对我来说,这听起来像是你想要流式传输数据。

也许 spring 的反应式堆栈是您想要查看的内容:

  • 构建一个反应式 RESTful Web 服务
  • 使用 Kotlin 的视频教程

有了这个,您的角度应用程序应该能够在单个项目发生时显示或反应非常完整的处理。

希望有帮助。

最新更新