web.xml中的会话超时

70

我正试图理解Web.xml中会话配置在会话超时方面的真实目的。

<!-- Session Configuration -->
<session-config>
        <session-timeout>60</session-timeout>
</session-config>

现在让我告诉你我的问题。

我的应用程序正在导入/上传一个 .txt 文件,这将需要超过1小时的时间,因为有数百万条记录需要导入。 但是会话在1小时后超时,尽管我的应用程序仍在导入该正在进行中的 .txt 文件。 这样的应用程序不应该超时,因为应用程序正在后台执行一些任务。


在session-timeout标签中增加您的数字。如果您有任何问题,请与我联系。谢谢。 - Adalarasan_Serangulam
7
如果有任何进程正在运行,我认为会话不会过期。只有当应用程序空闲一段时间后,会话才会过期。如果有一些后台进程在运行,你的应用程序就不是空闲状态。 - Jeevan Patil
4
我不确定你的应用程序导入如何工作。 如果应用程序正在等待I / O完成,则肯定处于空闲状态并将超时。 - Joe2013
你在客户端设置了一个JavaScript定时器来请求60分钟后的注销页面吗?如果是这样,你需要在开始上传之前禁用它。 - jt.
只需要一个简单的计时器,每10分钟轮询一次网站,一个Servlet什么也不做,只返回一个真/假的心跳值。然后一旦您的文档上传完成,就可以移除计时器了。 - user3586195
9
我想知道为什么在答案中没有人提到这可能是设计缺陷的问题。如果您正在进行如此长时间的处理,很可能没有理由将其与用户会话耦合。将文件上传到服务器,然后异步处理它即可。 - JanM
12个回答

0
如果您不希望因某些目的而发生超时:
<session-config>
    <session-timeout>0</session-timeout>
</session-config>

应该不会出现任何超时 -> 无限


1
问题是,即使会话处于活动状态(正在执行某些操作),为什么它在60分钟后过期? - Suresh Atta

-2
通常在请求处理时,会话不会过期。我认为中间可能有一个负载均衡器或其他组件,它会读取整个文件然后调用Web容器。
这可能导致延迟,从而导致会话过期。

1
会话在请求处理时可能会过期。例如,如果会话超时设置为15分钟,并且它接收到一个需要20分钟才能完成的请求,在此期间服务器没有收到任何请求,则会话将超时。 - Nikhil Das Nomula

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接