0

Tomcat (サーブレット コンテナーとして) はセッションを管理できます。セッションが期限切れになると、Tomcat はそれを無効にする必要があります。私に関する限り、Tomcat にはセッションの有効期限をチェックするスケジューラがあります (そうですか? HttpSessionListener (有効期限 == 1 分) を実装したリスナーを作成しようとしましたが、sessionDestroyed メソッドは、分ですが、どのセッションが無効化されたのかわかりません)。

問題は、スケジューラーのチェック期間とは何ですか?

4

1 に答える 1

2

簡単な答え:デフォルトでは、チェックは60秒ごとに行われます。

長い答え:チェックはバックグラウンド処理スレッドによって行われます。各コンテナ(エンジン、ホスト、またはコンテキスト)には、独自のバックグラウンド処理スレッドがあります。コンテナにバックグラウンド処理スレッドがない場合は、親のバックグラウンド処理スレッドを使用します。エンジンには、デフォルトで10秒ごとにチェックするバックグラウンド処理スレッドがあります。ホストとコンテキストには、デフォルトでバックグラウンド処理スレッドがありません。さらに、セッションマネージャーは、バックグラウンド処理スレッドのprocessExpiresFrequency実行ごとにのみセッション有効期限コードを実行します。これのデフォルト値は6であるため、セッションの有効期限はデフォルトで6 * 10s=60sごとに実行されます。

于 2012-04-05T18:50:29.733 に答える