java中请求触发的进程的状态

时间:2013-04-03 13:40:59

标签: java servlets

是否可以获取请求触发的流程状态。

假设,我有一个请求,它将触发长时间运行的进程,比如复制服务器端的某些文件,或者其他一些非常长时间运行的进程。现在我想向用户显示该任务的完成百分比。

如何在Java Servlet或任何其他支持此功能的框架中执行此操作?

我的想法是向页面发送连续响应。但这可能是不可能的。请帮我解决这个问题。

感谢。

2 个答案:

答案 0 :(得分:0)

一种解决方案是创建另一个servlet,将百分比提供为json(您可以将其存储在会话对象中),然后使用javascript定期从该servlet轮询信息并直接显示它们。

这篇文章可能对您有所帮助:

JQuery Get JSON from servlet

答案 1 :(得分:0)

enter image description here

您可以按照上面显示的模型进行操作。有两个servlet用于启动处理,另一个用于报告处理的状态。 Process Controller类将维护进程的状态以及启动/将进程置于队列中。

  1. 调用Start Processing servlet启动进程并返回表示进程的唯一ID

  2. JS / JQuery可用于使用上述UID定期请求Get Processing Progress servlet以了解进度。