From 09dd10ad6fac1478ba5c9286042242d3b0b20886 Mon Sep 17 00:00:00 2001 From: Ajay Date: Fri, 9 Feb 2024 00:34:12 -0500 Subject: [PATCH] Fix memory cache invalidation not invalidating every item --- src/utils/redis.ts | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/src/utils/redis.ts b/src/utils/redis.ts index 71b35a8..d646344 100644 --- a/src/utils/redis.ts +++ b/src/utils/redis.ts @@ -361,17 +361,20 @@ async function setupCacheClientListener(cacheClient: RedisClientType, cacheConnectionClientId = String(await cacheClient.clientId()); - cacheClient.subscribe("__redis__:invalidate", (messages) => { - const key = messages?.[0]; + cacheClient.subscribe("__redis__:invalidate", (keys) => { + if (keys) { + lastInvalidationMessage = Date.now(); - lastInvalidationMessage = Date.now(); - if (cache.delete(key)) { - lastInvalidation = Date.now(); - } + for (const key of keys) { + if (cache.delete(key)) { + lastInvalidation = Date.now(); + } - // To tell it to not save the result of this currently running request - if (key && activeRequestPromises[key] !== undefined) { - resetKeys.add(key); + // To tell it to not save the result of this currently running request + if (key && activeRequestPromises[key] !== undefined) { + resetKeys.add(key); + } + } } }).catch(Logger.error); }