显示运行java进程的进度,即使重新打开网页后也是如此

时间:2011-02-09 08:44:58

标签: java java-ee progress

我正在为一家开发基于Web的软件J2EE的公司工作。

在我们的webapp上,可以上传csv文件。我有一些读取器类,它读取每一行并处理它。 (它检查每个csv行中的值是否有效并将它们插入到数据库中)。除此之外,读者还会计算读取的行数,以便在流程结束时显示此数字。

用户可以上传文件并单击“进程”按钮,然后进程开始。 但是这些进程可能会有很长的持续时间,因为csv文件可能非常大。当用户关闭Web浏览器时,该过程仍在服务器上继续。

我希望用户让他们关注进度。即使他们关闭浏览器并再次登录。所以我想每个进程都应该附加某种ID,以了解哪个用户的进程以及进度的状态是什么?

Java中是否有某种机制可以实现这一目标?

2 个答案:

答案 0 :(得分:0)

跟踪进度的最简单方法是让进程将其更新写入数据库表 - 比如'jobs'。当用户上传新的csv文件并点击“进程”时,您可以先输入此表。该过程定期向表中写入其进度。当用户登录到他的帐户时,他可以看到他已经开始的所有工作及其进度。这不是最干净的方法,但它将完成工作。很多事情取决于您的具体框架。也许您可以使用进程ID进入此表,并且不需要您更新表中的进度。然后,前端可以使用RPC到您的进程来查询其进度。

答案 1 :(得分:0)

如果将csv作为raw存储在数据库的表中,则该条目应具有唯一的 UPLOAD_ID 。该表中应该有另一列,以将关联的 CLIENT 引用为外键。简而言之,您需要将上传的条目与执行上载的客户端或用户名相关联。