异步使用Struts 2

时间:2014-01-06 16:32:35

标签: java web struts2

我正在考虑使用Struts 2开发一个webapp,但我目前陷入了一个问题。

我必须开发的webapp必须为用户提供执行长时间运行的命令的能力,例如巨大的文件传输。如果用户注销命令(例如传输),则必须在服务器中继续执行。当用户注销时,他必须看到如何处理命令的执行或者它是否已经完成。

是否有可能用struts来完成这个?如何???

据我所知,Web应用程序架构中,用户在Web浏览器中执行的每个命令都附加到会话中,一旦他/她注销并且会话终止,请求的每个操作都被删除,是吗?

1 个答案:

答案 0 :(得分:2)

我的一个struts2项目中有类似的要求。存在各种情况,并且一旦用户锁定用于阅读的情况,该情况必须仅在该接下来的5分钟内针对该用户进行编辑。即使他退出并重新登录,我也必须显示剩余时间。我所做的是在案例表中添加了一个数据库字段caseLocked(timestamp),当用户锁定该情况时,Quartz调度程序作业以超时值5分钟开始,之后该数据库字段被置回null。

因此,在您的情况下,您可以将任务放入作业中,而不是设置固定的超时值,您可以定期轮询以检查任务的进度并让用户了解任务的状态< / p>