java - 实时显示计算进度,即使浏览器关闭也能保留进度

标签 java ajax multithreading

假设,这是在任何带有 servlet 项目的 jsp 中。

我点击一个按钮来计算一些东西,这个过程将通过几个步骤或使用一些需要近 5 个小时的同步线程来完成。

如果我点击后关闭浏览器窗口,会发生什么? 计算过程会停止还是继续?

如果是后者(继续),并且我在 2 小时后登录我的帐户,我会看到什么? 我想实时查看计算进度。

我应该做什么?

最佳答案

这种处理需要规划。有很多边缘情况。如果进程已经在运行怎么办?如果服务器在处理过程中终止怎么办?可以重新启动吗?处理过程可以中断吗?每个用户都可以启动此处理吗?还是只有授权用户才能启动此处理?

好的,现在给出答案。您希望在单独的后台线程中运行处理。请参阅执行器类。然后,您必须将该处理的进度存储在某处(此处为数据库)并创建另一个页面来显示该进度。您可能还必须记住开始处理的用户,以便您知道向请求进度的用户显示哪些进度信息。

所以,简单! :)

关于java - 实时显示计算进度,即使浏览器关闭也能保留进度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15314274/

相关文章:

java - Java中的子类

java - 调试线条未绘制且未为玩家设置重力

java - 返回具有最高值的 XML 元素

android - 利用 openGL 的多线程

javascript - 如何使 GET 产品与 Strict CSP 兼容?

javascript - Laravel x-editable CRSF 问题

javascript - 警告在设定时间内消失

jquery - 同时 ajax 调用会导致随机错误

java.lang.IllegalThreadStateException

c# - 使用 c# 的 Thread 和 Task 之间的性能比较