0

Tomcat(作为 servlet 容器)能够管理会话。当会话到期时,tomcat 必须使其无效。就我而言,tomcat 有一个调度程序,它检查会话过期时间(对吗?我尝试编写一个实现 HttpSessionListener 的监听器(过期时间 == 1 分钟),并且它的 sessionDestroyed 方法在分钟,但我不确定哪个会话无效)。

问题是,调度器的检查周期是多少?

4

1 回答 1

2

简短的回答:默认情况下每 60 秒进行一次检查

长答案:检查是由后台处理线程进行的。每个容器(引擎、主机或上下文)可能有自己的后台处理线程。如果容器没有后台处理线程,它会使用其父级的后台处理线程。默认情况下,引擎有一个后台处理线程,每 10 秒检查一次。Hosts 和 Contexts 默认没有后台处理线程。此外,会话管理器仅在后台处理线程的每个 processExpiresFrequency 执行时运行会话到期代码。默认值为 6,因此默认情况下,会话过期每 6*10s = 60s 执行一次。

于 2012-04-05T18:50:29.733 回答