ユーザーのログインとログアウトを知る必要があります。問題は、ユーザーセッションがタイムアウトしたときに、これを処理してアプリケーションを更新する方法です。
セッション破棄時に、たとえばdbテーブルを更新したいですか?
サーバーに多くの負荷がかかるため、cronジョブを使用しないことをお勧めします。
前もって感謝します。
ユーザーのログインとログアウトを知る必要があります。問題は、ユーザーセッションがタイムアウトしたときに、これを処理してアプリケーションを更新する方法です。
セッション破棄時に、たとえばdbテーブルを更新したいですか?
サーバーに多くの負荷がかかるため、cronジョブを使用しないことをお勧めします。
前もって感謝します。
一般に、パフォーマンスに大きな影響を与えることなく、すべてのユーザーのセッション状態に関する同時情報を保持する方法はありません。すでに述べたように、これは、1回のタイムアウト時にセッションを適切に終了できない結果です。
この時点で、2つのオプションがあります。
1. cronジョブを実行します(決定論的)
必要な回数だけ実行するようにcronジョブを設定できます。これにより、保持している情報がcron間隔と同じくらい古いことが保証されます。
2.セッションGCの確率を設定します
session.gc_probability
およびsession.gc_divisor
PHPオプションを設定すると、リクエストごとにセッションのクリーンアップが開始される確率を指定できます。通常、これは比較的低い値(たとえば、1/100)です。これは、サーバーの負荷が非常に高い場合、パフォーマンスが非常に速く低下する可能性があるためです。
このアプローチの利点は、組み込みであり、サーバーが実際にユーザーに攻撃されていない場合でも費用がかからないことです。
主な欠点は、サーバー上のリクエスト/秒の数を考慮して確率を常に調整する必要があることです。これは一定ではありません。その他の欠点は、実際に機能するように要求に依存し(サーバーに誰もアクセスしない場合はセッションをクリーンアップしない)、グローバル設定(アプリケーション全体ではなくサーバー全体で機能する)であるという事実です。