KamoCRM

プレゼンス バルク読み取りとRedis KEYSを使用したスタレプレゼンス掃引停止

FixMediaService
Shipped
2026年9月23日 10:41 UTC
Author
Kamo
Commit
e696226

getBulkPresence/getBulkLastSeen の KEYS PRESENCE:*/PRESENCE LAST SEEN:* の 全て 呼び出し - すべてのプレゼンスソケットマウントとタブフォーカスでヒット - と30秒スイープラン 2回以上、すべての***セッションを保持する同じRedisに対してすべて。 キーワード キースペース全体を歩き、ブロックします。プラットフォームのスケールで、フルリディスです リクエストパスに固定します。 それぞれが、スキャンの代わりに維持されたインデックスを読みます。 - PRESENCE ORG INDEX:{orgId} - 最後の心拍によって得たSSET、 handleConnect/handleHeartbeat によって書かれている、ハンドルによって取除かれるDisconnect's grace-period 削除。 getBulkPresence は直接読みます (またはスクーピングは 建設今、孤立したorgIdチェックではなく、sweepのメンバーハーフ ZRANGEBYSCORE では、盗まれない候補者だけを見つけるためにそれを読み込みます。 - PRESENCE ACTIVE ORGS - org id の SET なので、 sweep はすべての org の org の id にアクセスできる 会員データをスキャンすることで、org ids を発見することなくインデックスを作成できます。 メニュー - SET 裏付け getBulkLastSeen の 同じ方法。 前のものと同じではありません:個々のキーの400日TTL それでも退職したのが現状です。 - PRESENCE PUBLIC INDEX - 訪問者のセッションのための1つのフラットZSET(orgの概念なし) orgで一括して読み込まれるものは何もありません)、スイープの公共の半分に与えます。 毎回ハッシュキー (PRESENCE:, PRESENCE PUBLIC:, PRESENCE LAST SEEN:) は 変更されていない - 同じフィールド、同じTTL - と、真実の単一のソースを1つ保持 独自の状態; id が見つかるだけのインデックス; 読み込みまたは sweepは、何かを信頼したり、報告する前に、実際のハッシュをまだチェックし、 ハッシュが既にそれを上回っている場合、自己回復(インデックスエントリをドロップ)。 ツイート 再存続したハートビート(キーは中世に期限が切れる)が、オルガの属性にはならない - 古い KEYS+HGET("orgId") スキャンのギャップと同じです。 いずれかのフィールド; 唯一の org-bulk ビュー 影響を受けます, 前から変更されていません. PresenceBulkLookupTest(new)とPresenceSweepTest(rewritten for)がカバー 新しい発見機構、前と同じ行動ピンプラス "never KEYS を呼び出します), ミューテーションチェック: インデックスの書き込みをドロップする handleConnect、getBulkPresence の自己ヒースブランチ、および hasKey ガード それぞれのスイープで特定のアサーション赤をオンにします.

All changes

Like what you see shipping?

All of it arrives in your workspace on its own. Start on the free plan and read this page again in a month.

Start Free ForeverView Pricing