From 942b2374b836cf60970187f6068cdab4b12ef0bd Mon Sep 17 00:00:00 2001 From: Hongbo Wu Date: Tue, 20 Feb 2024 18:08:55 +0800 Subject: [PATCH 1/3] get postgres connection pool size from env --- packages/api/src/data_source.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/api/src/data_source.ts b/packages/api/src/data_source.ts index 5e734af42..eeb57fd9c 100644 --- a/packages/api/src/data_source.ts +++ b/packages/api/src/data_source.ts @@ -16,9 +16,11 @@ export const appDataSource = new DataSource({ subscribers: [__dirname + '/events/**/*{.js,.ts}'], namingStrategy: new SnakeNamingStrategy(), logger: new CustomTypeOrmLogger(['query', 'info']), - connectTimeoutMS: 40000, // 40 seconds + connectTimeoutMS: 10000, // 10 seconds maxQueryExecutionTime: 10000, // 10 seconds extra: { options: process.env.PG_EXTRA_OPTIONS, + max: env.pg.pool.max, + idleTimeoutMillis: 10000, // 10 seconds }, }) From 59d4d78f78910ee4f6745a054dca68b98665dc1d Mon Sep 17 00:00:00 2001 From: Hongbo Wu Date: Tue, 20 Feb 2024 18:33:21 +0800 Subject: [PATCH 2/3] connection idle timeout in 10 seconds --- packages/api/src/queue-processor.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/api/src/queue-processor.ts b/packages/api/src/queue-processor.ts index cb5598ece..b16678d4e 100644 --- a/packages/api/src/queue-processor.ts +++ b/packages/api/src/queue-processor.ts @@ -153,8 +153,12 @@ const main = async () => { subscribers: [__dirname + '/events/**/*{.js,.ts}'], namingStrategy: new SnakeNamingStrategy(), logger: new CustomTypeOrmLogger(['query', 'info']), - connectTimeoutMS: 40000, // 40 seconds + connectTimeoutMS: 10000, // 10 seconds maxQueryExecutionTime: 10000, // 10 seconds + extra: { + max: env.pg.pool.max, + idleTimeoutMillis: 10000, // 10 seconds + }, }) // respond healthy to auto-scaler. From cd311d64544989aba8300fef4b877f9b50335d49 Mon Sep 17 00:00:00 2001 From: Hongbo Wu Date: Tue, 20 Feb 2024 19:09:33 +0800 Subject: [PATCH 3/3] do not update db options in queue-processor --- packages/api/src/queue-processor.ts | 21 --------------------- 1 file changed, 21 deletions(-) diff --git a/packages/api/src/queue-processor.ts b/packages/api/src/queue-processor.ts index b16678d4e..218ddc156 100644 --- a/packages/api/src/queue-processor.ts +++ b/packages/api/src/queue-processor.ts @@ -140,27 +140,6 @@ const main = async () => { mq: env.redis.mq, }) - appDataSource.setOptions({ - type: 'postgres', - host: env.pg.host, - port: env.pg.port, - schema: 'omnivore', - username: env.pg.userName, - password: env.pg.password, - database: env.pg.dbName, - logging: ['query', 'info'], - entities: [__dirname + '/entity/**/*{.js,.ts}'], - subscribers: [__dirname + '/events/**/*{.js,.ts}'], - namingStrategy: new SnakeNamingStrategy(), - logger: new CustomTypeOrmLogger(['query', 'info']), - connectTimeoutMS: 10000, // 10 seconds - maxQueryExecutionTime: 10000, // 10 seconds - extra: { - max: env.pg.pool.max, - idleTimeoutMillis: 10000, // 10 seconds - }, - }) - // respond healthy to auto-scaler. app.get('/_ah/health', (req, res) => res.sendStatus(200))