Java Spring:通过REST API向客户端实时更新状态

13

我正在使用Java Spring开发一个Web应用程序,希望用户能够从前端上传CSV文件,并在导入过程中实时查看进度。导入后,用户应该能够从导入的数据中搜索单个条目。

导入过程将包括实际上传文件(通过REST API POST请求发送),然后读取它并将其内容保存到数据库中,以便用户可以从这些数据中进行搜索。

如何显示此过程的实时进度?我找到了一个jQuery教程,它显示了上传/传输的数据量进度,但由于大部分工作是在处理上传的文件时完成的,所以我想我需要一种解决方案,在行处理之前找出文件中的行数,然后用户可以看到实时消息,例如:

已处理的行:1/10000

它可以逐步更新/更改,但由于一行被快速处理,所以显示每个已处理的行数并不重要。

无论如何,问题是,从Spring REST API最容易向客户端发送这些消息的方法是什么?


你可以像这样使用服务器发送事件(Server Sent Events SEE): https://dev59.com/a5zha4cB1Zd3GeqPCkdk#59735636 - Falah H. Abbas
你可以像这样使用服务器发送事件(Server Sent Events SEE) https://dev59.com/a5zha4cB1Zd3GeqPCkdk#59735636 - Falah H. Abbas
1个回答

5
我自己找到了解决办法,并使用了Web Sockets。
我使用了Spring文档中的这种方法:

https://spring.io/guides/gs/messaging-stomp-websocket/

它可以帮助将每个处理的行的消息发送到前端侦听器(在Web套接字主题/连接启动后),但对于数据导入,我使用了不同的方法,我使用了批量插入,因此这对我不可用,但Web套接字能够实现这一点。

你能分享一下你的方法吗? - Farouk
@Farouk 你好,我实际上使用了我分享的那个教程中提供的相同代码。我进行了一些修改,但基础是相同的。但如果你真的想看看我是如何做到的,我想你可以从我的Github上看到:https://github.com/vsamma/DataProcessor - V. Samma

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接