【问题标题】:How to show progress of threads on the JSP page using Spring MVC?如何使用 Spring MVC 在 JSP 页面上显示线程的进度?
【发布时间】:2015-08-30 11:04:09
【问题描述】:

我有一个 Spring MVC Web 应用程序,我从一个表单中获取一些输入,基于这些输入,我正在创建一个唯一的 id(通过在数据库中检查它,Java 端的逻辑不是用于创建唯一的数据库ID)。到目前为止一切都很好。

现在我想通过 CSV 文件提供批量上传选项。我从 csv 文件中解析了整个数据,并尝试使用 TaskExecutionService 在数据库中插入数据(8000 条记录)。但是整个过程仍然不是很快,我得到了立即响应,所以我想在 jsp 页面上显示整个任务的进度,这样它看起来是交互式的,并且在所有线程完成时,我想显示一个链接下载包含所有唯一 ID 的 csv 文件。

由于线程在后台运行,我不知道如何更新页面?

如果与 Spring MVC 兼容,也欢迎此过程的任何其他方法。

【问题讨论】:

  • 您要上传 csv 文件吗?您如何生成唯一 ID?你想展示使用线程仪式插入的执行吗?你能给我更多的澄清吗?
  • 有一个逻辑可以根据输入数据创建唯一 id,例如基值 + 名称 + tieBreakerValue(如果需要)。是的,我想展示每个线程的执行,它的异步 http 方法。对不起,但不要让我分享代码。我处于受限环境中。

标签: java multithreading spring spring-mvc concurrency


【解决方案1】:

这可以使用 ajax 来完成,您可以在其中轮询后端的进度百分比,并使用 js/jquery 或其他插件来显示进度。您必须如何设计逻辑以获得完成的工作百分比您的线程。也许您可以计算插入的行数并从中获取逻辑以计算完成工作的百分比。所以应该有一个方法可以返回完成的工作百分比,并且对该方法的 ajax 调用可以帮助显示进度。

参考jquery progress bar

Progressbar.js

【讨论】:

  • 我期待一些代码的好答案。你刚刚解释了最后一部分。我关心的是逻辑而不是 ui。
  • 如果不分享你尝试过的东西,你怎么能期待一个代码?如果你在受限的环境中......你不只是发布类似的假代码吗?
  • 你的问题看起来更像是一个ui问题而不是逻辑
  • “如何显示线程的进度”..很明显,进度将显示在进度条中。顺便说一句,我使用 Futures 和 Listenable Futures 解决了我的问题。感谢您提出否定意见。
猜你喜欢
  • 1970-01-01
  • 2011-10-21
  • 2015-08-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-12
  • 1970-01-01
  • 2019-05-05
相关资源
最近更新 更多