From 4d303a61d1846d9ec7992367477a279181281eec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?F=C3=A9lix=20Malfait?= Date: Thu, 15 May 2025 21:23:51 +0200 Subject: [PATCH] Change idle connection time (#12073) As discussed with @Weiko Even though we cache the datasource, the connection expire after 10minutes in TypeORM, that might be the reason why our app is spamming the proxy asking for connections. Also lowering the pool size. --- .../factories/workspace-datasource.factory.ts | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/packages/twenty-server/src/engine/twenty-orm/factories/workspace-datasource.factory.ts b/packages/twenty-server/src/engine/twenty-orm/factories/workspace-datasource.factory.ts index 254afad52..f58ef98de 100644 --- a/packages/twenty-server/src/engine/twenty-orm/factories/workspace-datasource.factory.ts +++ b/packages/twenty-server/src/engine/twenty-orm/factories/workspace-datasource.factory.ts @@ -36,6 +36,8 @@ type CacheResult = { data: U; }; +const ONE_HOUR_IN_MS = 3600_000; + @Injectable() export class WorkspaceDatasourceFactory { private readonly logger = new Logger(WorkspaceDatasourceFactory.name); @@ -173,6 +175,16 @@ export class WorkspaceDatasourceFactory { rejectUnauthorized: false, } : undefined, + extra: { + query_timeout: 10000, + // https://node-postgres.com/apis/pool + // TypeORM doesn't allow sharing connection pools bet + // So for now we keep a small pool open for longer + // for each workspace. + idleTimeoutMillis: ONE_HOUR_IN_MS, + max: 4, + allowExitOnIdle: true, + }, }, cachedFeatureFlagMapVersion, cachedFeatureFlagMap,