Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 实时显示计算进度,即使关闭浏览器也能保留进度_Java_Ajax_Multithreading - Fatal编程技术网

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

Java 实时显示计算进度,即使关闭浏览器也能保留进度,java,ajax,multithreading,Java,Ajax,Multithreading,假设这是在任何jsp和servlet项目中 我点击了一个按钮来计算一些东西,这个过程将在几个步骤中完成,或者使用一些需要将近5个小时的同步线程 如果单击后关闭浏览器窗口,会发生什么? 计算过程将停止还是继续 如果是后者(继续),并且我在2小时后登录到我的帐户,我会看到什么? 我想实时查看计算进度 我该怎么办?这种处理需要计划。有许多边缘情况。如果进程已经在运行怎么办?如果服务器在处理中间终止,该怎么办?你能重新开始吗?可以中断处理吗?是否每个用户都可以启动此处理,还是仅由授权用户启动 好的,现在

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

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

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

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


我该怎么办?

这种处理需要计划。有许多边缘情况。如果进程已经在运行怎么办?如果服务器在处理中间终止,该怎么办?你能重新开始吗?可以中断处理吗?是否每个用户都可以启动此处理,还是仅由授权用户启动

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


所以,很简单!:)

你是在后台启动流程的吗?您需要保留线程更新的某种状态对象,然后使用该状态向用户显示信息。如果您的Web服务器运行,线程将继续运行。