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

2022-09-04 23:00:25

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

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

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

已处理的生产线:10000 条中的 1 条

它可以以增量方式更新/更改,但是由于一行的处理速度非常快,因此显示处理的每行数并不那么重要。

无论哪种方式,问题是,将这些消息从Spring REST API发送到客户端的最简单方法是什么?


答案 1

我自己找到了一个解决方案,并使用Web Sockets来实现这一目标。

我在Spring文档中使用了这种方法:

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

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


答案 2