From 570f83ea761edad579615964633d57d96ea365de Mon Sep 17 00:00:00 2001 From: Thomas Trompette Date: Mon, 26 Jan 2026 19:03:59 +0100 Subject: [PATCH] Use pipeline to count event stream (#17450) As title. So we only send one TCP call per batch --- .../services/cache-storage.service.ts | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/packages/twenty-server/src/engine/core-modules/cache-storage/services/cache-storage.service.ts b/packages/twenty-server/src/engine/core-modules/cache-storage/services/cache-storage.service.ts index 63a3380026..b2b32d6750 100644 --- a/packages/twenty-server/src/engine/core-modules/cache-storage/services/cache-storage.service.ts +++ b/packages/twenty-server/src/engine/core-modules/cache-storage/services/cache-storage.service.ts @@ -227,11 +227,20 @@ export class CacheStorageService { const keys = result.keys; if (keys.length > 0) { - const counts = await Promise.all( - keys.map((key) => redisClient.sCard(key)), - ); + const pipeline = redisClient.multi(); - totalCount += counts.reduce((sum, count) => sum + count, 0); + for (const key of keys) { + pipeline.sCard(key); + } + + const results = await pipeline.exec(); + + for (const result of results) { + if (result instanceof Error) { + throw result; + } + totalCount += result as number; + } } } while (cursor !== 0);