KamoCRM

Leituras em massa de presença e a varredura de presença defasada parar usando Redis KEYS

FixMediaService
Navios
23 de setembro de 2026 às 10:41 UTC
Autor
Kamo
Enviar
e696226

getBulkPresence/getBulkLastSeen run KEYS PRESENCE:*/PRESENCE LAST SEEN:* em cada chamada - bater em cada presença-socket montagem e tab focus - ea varredura 30s correu Duas vezes mais, todos contra o mesmo Redis que mantém cada sessão ***. CHAVES caminha e bloqueia todo o espaço de chaves; em escala de plataforma que é um Redis completo Empatar num caminho de solicitação, não num caminho de per-org. Cada um dos três agora lê um índice mantido em vez de digitalizar: - PRESENCE ORG INDEX: escrito por HandleConnect/handleHeartbeat, removido pelo HandleDesconnect's período de tolerância apagar. getBulkPresence lê-lo diretamente (org scoping é por construção agora, não uma verificação orgld por-candidato); metade do membro da varredura lê-lo com ZRANGEBYSCORE para encontrar apenas candidatos plausivelmente-stale. - PRESENCE ACTIVE ORGS - um conjunto de ids de org, para que a varredura possa visitar cada org's indexar sem descobrir ids org digitalizando dados de membros. - Está bem. - um suporte SET getBulkLastSeen the Da mesma forma. Não varrido, como antes: o próprio TTL da chave individual de 400 dias é ainda o que o aposenta. - PRESENCE PUBLIC INDEX - um ZSET plano para sessões de visitantes (sem conceito de org, Nada os lê a granel por org), alimentando a metade pública da varredura. Cada chave de hash per-id (PRESENCE:, PRESENCE PUBLIC:, PRESENCE LAST SEEN:) é inalterado - mesmos campos, mesmos TTLs - e permanece a única fonte de verdade para seu próprio estado; um índice somente estreita que os IDs são vistos; uma leitura ou o varrer ainda verifica o verdadeiro hash antes de confiar ou relatar qualquer coisa, e auto-curas (descarta a entrada do índice) se o hash já o superou. A batimento cardíaco revivido (chave expirada no meio da sessão) ainda não pode atribuir uma org - a mesma lacuna que a antiga varredura KEYS+HGET("orgId") teve, uma vez que esse caminho nunca escreveu o campo; apenas a visão org-bulk é afetada, sem alterações de antes. Coberto por PresenceBulkLookupTest (novo) e PresenceSweepTest (rescrito para o novo mecanismo de descoberta, os mesmos pinos comportamentais como antes mais um "nunca chama a verificação de KEYS", verificada por mutação: deixando cair a gravação do índice handleConnect, o branch de auto-cura no getBulkPresence, e o hasKey guard na varredura cada virar uma asserção específica vermelho.

Todas as alterações

Como o que vês no transporte?

Tudo isso chega em seu espaço de trabalho por conta própria. Comece no plano gratuito e leia esta página novamente em um mês.

Começar Livre Para SempreVer Preços