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

2024-01-06

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

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

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

已处理行数:10000 行中的 1 行

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

不管怎样,问题是,将这些消息从 Spring REST API 发送到客户端的最简单方法是什么?


我自己找到了一个解决方案并使用了 Web Sockets。

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

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java Spring:通过 REST API 向客户端实时更新状态 的相关文章

随机推荐

  • 在 Hibernate 中使用基元或包装类?

    使用 Hibernate 映射数据库 我们应该使用带有 NotNull 约束的 Double 或者改用 double 原始类型 最佳实践是什么 使用Java 6 Column name price after tax nullable fa
  • 在 javascript 中访问 Ruby 对象

    我正在开发一个 Rails 应用程序 4 1 8 它在我的显示视图中需要大量 JavaScript 并且我需要一种方法来访问实际 js 文件中从 ActiveRecord 返回的数据 这是一个例子 我的秀控制器 def show user
  • 如何在 Angular2 中的对象数组上使用 select/option/NgFor [重复]

    这个问题在这里已经有答案了 我在 Angular2 中创建由对象数组而不是字符串支持的选择时遇到问题 我知道如何在 AngularJS 中使用ng选项 https docs angularjs org api ng directive ng
  • 使用 JRuby 加快 RSpec

    我对整个 JRuby 世界还很陌生 我在一个相当大的测试套件上使用 RSpec 我希望能够经常运行规范 但 JVM 启动时间太长 这真的很浪费时间 有没有办法让 JVM 保持运行 或者一种让 JRuby 规范运行得更快的方法 您可以研究两件
  • “CSharpCodeProvider.Parse”的替代方案

    我正在寻找替代方案CSharpCodeProvider Parse 该方法应该解析 C 代码源并返回CompileUnit目的 但是 该方法并未在任何 Net 框架中实现 我的目的是能够导航 C CodeDOM 而无需编译它 我正在编写一个
  • 在 O(1) 空间和 O(n) 时间内查找 2 个字符串是否是字谜

    对两个字符串进行排序后 您可以在 O nlogn 时间内找到两个字符串是否是字谜词 但是是否有可能在 o n 时间和 O 1 空间中找到它 有几种方法可以解决它 方法 1 使用自定义哈希码函数我们可以有 hashCode 函数 例如 sta
  • 如何在静默模式下执行 Selenium Chrome WebDriver?

    当使用 Chrome Selenium WebDriver 时 它将在服务器启动时输出诊断输出 在端口 9515 上启动 ChromeDriver v2 0 我不想看到这些消息 如何抑制它们 我这样做 ChromeOptions optio
  • 无法检查 DocumentSnapshot 上的 containsKey

    我正在尝试检查我的字段中是否存在documentSnapshot My code document data containsKey field name 但我得到 错误 未为类型 Function 定义方法 containsKey 有什么
  • Javascript:如何将给定日期转换为可读格式[重复]

    这个问题在这里已经有答案了 我有 ISO 格式的日期 例如 2016 02 17T16 40 30 如何将其转换为人类可读的日期 例如 17 Feb 2016 16 40 首先 您需要使用原始日期字符串创建一个日期 var d new Da
  • 轻松将多个变量设置为 false 或 true

    我在 Javascript 中定义了多个布尔值 在切换时我想将它们设置为 false 或 true var categoryAdvertising false var categoryInformArtation false var cat
  • 主谋博弈算法

    我必须为一项任务制作一个策划游戏 我陷入了接受用户输入并需要将它们与随机数进行比较的部分 然后我需要将 用户输入 数字放在网格上的正确位置 自下而上 另外 我必须显示该号码是否为 正确且处于正确位置 显示 4 通过显示 2 来显示正确但错误
  • MongoDB 4.2 中的事务与新的 PHP 驱动程序

    我是新来的MongoDB因为我是一个超级粉丝MySQL前 我最近搬到了这个NoSQL东西并且喜欢它 但现在我严重陷入困境交易 in MongoDB 我在 SO 上发现了一些相关问题 但没有答案或已过时 不适用于新的MongoDB PHP D
  • Tiles 与 Struts 2 注释集成

    我一直在尝试将 Tiles 与基于 Struts 2 注释的操作集成 但它无法正常工作 因为我没有struts config xml在网络上提供的每个教程中 他们都引用它struts config xml 首先 可以将基于注释的 strut
  • 在 yii2 中对多个表使用连接

    我正在使用 yii2 我有 3 个表 帖子 粉丝 评论 我想使用 joinWith 来获取帖子及其评论以及帖子和评论的粉丝名称 在粉丝表中 我写的是这个查询 pre facebook posts find gt joinwith fans
  • 制作方形图像

    如何在不使用任何第 3 方库 仅限 Net 框架 的情况下 在 C 中将图像重新采样为正方形 并用白色背景填充 Thanks 这实际上可以很容易地完成 public static Image PadImage Image originalI
  • GAE 增加电子邮件收件人限制

    我的付费 App Engine 限制我只能发送 100 封邮件 我找不到任何文档来增加该限制 此外 它还表示 超过 100 封邮件将收取 0 00 100 美元的费用 我也找不到有关计费文档的任何信息 关于如何发送超过 100 封邮件并收取
  • 带有时区的节点 cron

    我有一个node http nodejs org v0 7 3 pre 服务器节点 cron https github com ncb000gt node cron 0 3 2 和节点时间 https github com TooTallN
  • android 3.0:JS scrollTop 不适用于 chrome/webview

    我已经通过 webView 编写了一个应用程序包装 它在我的 Milestone2 2 2 上按预期工作但滚动功能在 3 0 的 chrome 上不起作用 在 FF 中工作 既不是 dom scrollTop XXX 也不是 jquery
  • 如何在 WIX 中包含 msi/Setup.exe 的先决条件

    我正在尝试将我的包合并到一个安装 EXE 文件中并将其上传到 Internet 我创建了一个 Microsoft 引导程序 其中包含带有项目的 Setup exeMSI http en wikipedia org wiki Windows
  • Java Spring:通过 REST API 向客户端实时更新状态

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