From 069ba28bc0444513b88beef0afab1e94b77b4003 Mon Sep 17 00:00:00 2001 From: Nikitas Papadopoulos Date: Thu, 27 Nov 2025 14:36:34 +0100 Subject: [PATCH] redis_keep_alive fix on usagecachemanager using keyv/redis (#5519) --- packages/server/src/UsageCacheManager.ts | 26 +++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/packages/server/src/UsageCacheManager.ts b/packages/server/src/UsageCacheManager.ts index 583fe5445..420daa641 100644 --- a/packages/server/src/UsageCacheManager.ts +++ b/packages/server/src/UsageCacheManager.ts @@ -37,7 +37,19 @@ export class UsageCacheManager { if (process.env.MODE === MODE.QUEUE) { let redisConfig: string | Record if (process.env.REDIS_URL) { - redisConfig = process.env.REDIS_URL + redisConfig = { + url: process.env.REDIS_URL, + socket: { + keepAlive: + process.env.REDIS_KEEP_ALIVE && !isNaN(parseInt(process.env.REDIS_KEEP_ALIVE, 10)) + ? parseInt(process.env.REDIS_KEEP_ALIVE, 10) + : undefined + }, + pingInterval: + process.env.REDIS_KEEP_ALIVE && !isNaN(parseInt(process.env.REDIS_KEEP_ALIVE, 10)) + ? parseInt(process.env.REDIS_KEEP_ALIVE, 10) + : undefined + } } else { redisConfig = { username: process.env.REDIS_USERNAME || undefined, @@ -48,8 +60,16 @@ export class UsageCacheManager { tls: process.env.REDIS_TLS === 'true', cert: process.env.REDIS_CERT ? Buffer.from(process.env.REDIS_CERT, 'base64') : undefined, key: process.env.REDIS_KEY ? Buffer.from(process.env.REDIS_KEY, 'base64') : undefined, - ca: process.env.REDIS_CA ? Buffer.from(process.env.REDIS_CA, 'base64') : undefined - } + ca: process.env.REDIS_CA ? Buffer.from(process.env.REDIS_CA, 'base64') : undefined, + keepAlive: + process.env.REDIS_KEEP_ALIVE && !isNaN(parseInt(process.env.REDIS_KEEP_ALIVE, 10)) + ? parseInt(process.env.REDIS_KEEP_ALIVE, 10) + : undefined + }, + pingInterval: + process.env.REDIS_KEEP_ALIVE && !isNaN(parseInt(process.env.REDIS_KEEP_ALIVE, 10)) + ? parseInt(process.env.REDIS_KEEP_ALIVE, 10) + : undefined } } this.cache = createCache({