是否可以获取请求触发的进程状态。
假设,我有一个请求,它将触发长时间运行的进程,比如在服务器端复制一些文件,或者其他一些真正长时间运行的进程。现在我想向用户展示该任务的完成百分比。
如何在 Java Servlet 或任何其他支持此功能的框架中执行此操作?
我的想法是向页面发送持续的响应。但这可能是不可能的。请帮我解决这个问题。
谢谢。
一种解决方案是创建另一个以 json 格式提供百分比的 servlet(您可以将其存储在会话对象中),然后使用 javascript 定期轮询来自该 servlet 的信息并直接显示它们。
这篇文章可能会帮助你:
您可以按照上面显示的模型。有两个 servlet,一个用于启动处理,另一个用于报告处理状态。Process Controller 类将维护进程的状态以及启动/将进程放入队列中。
调用 Start Processing servlet 启动一个进程并返回一个表示该进程的唯一 ID
JS/JQuery 可用于使用上述 UID 向 Get Processing Progress servlet 发出定期请求以了解进度。