我正在Java Spring中开发一个Web应用程序,我希望用户能够从前端上传CSV文件,然后查看导入过程的实时进度,并且在导入之后,他应该能够搜索单个条目从导入的数据。
导入过程将包括实际上传文件(通过REST API POST请求发送),然后读取文件并将其内容保存到数据库中,以便用户能够从该数据中进行搜索。
如何显示此过程的实时进度?我找到了一个jQuery教程,其中显示了上载/传输的数据量的进度,但是由于大多数工作是在处理上载的文件时完成的,所以我想我想要一个解决方案,在行处理之前我先找出量文件中的行数,然后用户可以看到如下实时消息:
处理的行数:10000中的1
它可以增量更新/更改,但是由于处理一行非常快,因此显示处理的每行数量并不那么重要。
无论哪种方式,问题都是,将这些消息从Spring REST API发送到客户端的最简单方法是什么?
我自己找到了一个解决方案,并为此使用了Web套接字。
我从Spring文档中使用了这种方法:
https://spring.io/guides/gs/messaging-stomp- websocket/
它可能有助于将每条处理过的行的消息发送到前端侦听器(在启动Web套接字主题/连接之后),但是我使用了另一种方法来进行数据导入,我使用了批量插入,所以我不可用。网络套接字能够做到这一点。