【发布时间】:2014-12-22 19:54:39
【问题描述】:
如何在用户会话中实现后台任务,以检查用户是否取得任何进展?当用户耗时过长时,可以释放预留的资源。
要求是当用户选择预留时,为该用户预留资源,服务器现在正在等待下一个请求继续进行。
如果用户在接下来的 60 秒内没有点击继续,服务器应该会自动释放保留的资源。
【问题讨论】:
标签: java spring spring-mvc task
如何在用户会话中实现后台任务,以检查用户是否取得任何进展?当用户耗时过长时,可以释放预留的资源。
要求是当用户选择预留时,为该用户预留资源,服务器现在正在等待下一个请求继续进行。
如果用户在接下来的 60 秒内没有点击继续,服务器应该会自动释放保留的资源。
【问题讨论】:
标签: java spring spring-mvc task
您可以使用java.util.Timer, java.util.TimerTask 来安排和执行取消。另一个流行的调度库是quartz。但这可能有点矫枉过正。
解决此问题的另一种方法是创建一个客户端计时器任务,该任务在一段时间内没有用户交互时调用服务器“取消”功能。即使这样,当用户通过关闭浏览器来孤立会话时,您也必须有一个服务器进程来清理资源。
您也可以考虑使用session timeout。
【讨论】:
好的,所以我想出了如何实施解决方案。
这是我遵循的步骤
【讨论】: