KamoCRM

Odczyty masowe obecności i nieświeżoo-obecność przestaną za pomocą Redis KEYS

FixMediaService
Shipped
23 września 2026 10:41 UTC
Author
Kamo
Commit
e696226

getBulkPresence/getBulkLastSeen ubiegły KEYS PRESENCE:?/PRESENCE_LAST_SEEN: Rozmowa - uderzając w każdy uchwyt i ostrość na kartce obecności - a przeczesanie z lat 30 Jeszcze dwa razy więcej, wszystkie przeciwko temu samemu Redis, który organizuje każdą sesję. Klucze Spacery i blokuje całą przestrzeń kluczy; w skali platformy, która jest pełną Redis Zatrzymaj się na ścieżce prośby, a nie naorg. Każdy z trzech obecnie odczytuje utrzymywany indeks zamiast skanowania: - PRESENCE_ORG_INDEX:?orgId - a ZSET of memberId strzelony przez ostatnie bicie serca, Napisane przez uchwytConnect / uchwytHeartbeat, usunięte przez uchwytDisconnect's Usuń grację-okres. getBulkPresence odczytuje go bezpośrednio (org scoping jest przez Budowa teraz, a nie czek na kandydata na orgifika; członek zamiatania w połowie Czyta to z ZRANGEBYSCORE, aby znaleźć tylko wiarygodnych kandydatów. - PRESENCE_ACTIVE_ORGS - zestaw identyfikatorów org, dzięki czemu zamiatanie może odwiedzić every org's Indeks bez odkrywania identyfikatorów org poprzez skanowanie danych członków. - - Podpowracanie SET getBulkLastSeen the W ten sam sposób. Nie zamiatane, tak samo jak wcześniej: własny 400-dniowy TTL pojedynczego klucza Nadal jest to, co to przechodzi na emeryturę. - PRESENCE_PUBLIC_INDEX - jeden płaski ZSET dla sesji dla odwiedzających (bez org concept, Nic nie czyta ich luzem przez org), karmiąc publiczną połowę zamiatania. Każdy klucz do hash (PRESENCE:, PRESENCE_PUBLIC:, PRESENCE_LAST_SEEN:) jest Niezmienione - te same pola, te same TTL - i pozostaje pojedynczym źródłem prawdy dla Własny stan; indeks tylko wąsek, na który id id są oglądane; lektura lub Zamiatanie nadal sprawdza prawdziwy hash przed zaufaniem lub raportowaniem czegokolwiek, i Samotwarde (upuszcza wpis indeks), jeśli hash już go przeżył. A A) (u) (ang.) Odżył bicie serca (klucz wygasł w połowie sesji) nadal nie może przypisać org - Tę samą lukę, jaką miał stary skan KEYS+HGET(”orgId), ponieważ ta ścieżka nigdy nie została napisana pole albo; tylko widok org-bulk jest dotknięty, niezmieniony od czasu do czasu. Zawarte przez PresenceBulkLookupTest (nowy) i PresenceSweepTest (przepisany dla Nowy mechanizm odkrywania, te same szpilki behawioralne, co wcześniej plus "nigdy" Rozmowy KEYS" check), sprawdzane mutacja: upuszczanie indeksu w uchwyt Connect, samo-aldrowa gałąź w getBulkPresence i haskKey Guard W zamiataniu każdy obraca się na czerwono konkretne twierdzenie.

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