我面对的情况是,保持session.setMaxInactiveInterval(15*60) //15 minutes
现在,在应用程序中有一个请求正在保存用户数,这在服务器端需要15分钟以上,因为在保存每个用户的同时涉及内部许多操作。
当从浏览器执行saveUser操作时,在服务器上收到请求,开始处理,15分钟后客户端看到“会话超时”但用户保存操作仍在继续。
我想避免这种情况,需要的是服务器当时收到请求,直到它回应客户端的时间不将中间时间视为非活动时间。
我可以通过将setMaxInactiveInterval(-1)
作为我的方法saveUser的第一行,并在将响应作为setMaxInactiveInterval(15*60)
之前完成。
我正在寻找标准方法,或者这是遵循的标准方法? 是否为这种情况提供了内置的Tomcat配置?
答案 0 :(得分:1)
标准的Java EE方法如下:
N.B。阻止服务器中的一个线程15分钟是一个非常糟糕的主意,因为它本质上意味着你的servlet容器不能对该线程做任何其他事情。想象一下,如果大量的请求同时进入,你的网络层可能会在压力下屈服......
N.B.2:15 * 50不会15分钟