即使浏览器关闭,也可以实时显示计算进度并保持进度

时间:2013-03-09 18:22:38

标签: java ajax multithreading

假设这是jsp项目中的任何servlet

我单击了一个按钮来计算某些内容,过程将在几个步骤中完成,或者使用一些需要近5个小时的同步线程。

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

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

我该怎么办?

1 个答案:

答案 0 :(得分:1)

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

好的,现在回答。您希望在单独的后台线程中运行处理。请参阅Executor类。然后你必须在某处存储该处理的进度(想想这里的db)并创建另一个页面来显示该进度。您可能还必须记住开始处理的用户,以便您知道向请求进度的用户显示哪些进度信息。

所以,简单! :)