我正在考虑使用 Struts 2 开发一个 Web 应用程序,但目前遇到一个问题。
我要开发的Web应用程序必须为用户提供执行长时间运行的命令的能力,例如大文件传输。如果用户注销,则命令(例如传输)必须继续在服务器中执行。当用户重新登录时,他必须查看命令的执行是如何处理的或者是否已经完成。
用struts可以实现这个功能吗?怎么办???
据我了解网络应用程序架构,用户在网络浏览器中执行的每个命令都会附加到 session 中,一旦他/她注销并且 session 终止,请求的每个操作都会被删除,对吗?
最佳答案
我在我的一个 struts2 项目中也有类似的需求。有多种情况,一旦用户锁定一个案例以供阅读,该案例在接下来的 5 分钟内只能由该用户编辑。即使他注销并重新登录,我也必须显示剩余时间计数器。我所做的是将数据库字段 caseLocked(timestamp) 添加到案例表中,当用户锁定该案例时 Quartz调度程序作业以 5 分钟的超时值启动,之后数据库字段将恢复为 null。
因此,在您的情况下,您可以将任务放入作业中,而不是设置固定的超时值,您可以定期进行轮询以检查任务的进度并让用户了解任务的状态
关于java - 异步使用 Struts 2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20954596/