Skip to content

Commit 6be2f96

Browse files
committed
Make max tries configurable
1 parent 47a6a13 commit 6be2f96

File tree

3 files changed

+7
-5
lines changed

3 files changed

+7
-5
lines changed

src/config.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,8 @@ addDefaults(config, {
8181
password: "",
8282
port: 5432,
8383
max: 10,
84-
idleTimeoutMillis: 10000
84+
idleTimeoutMillis: 10000,
85+
maxTries: 3
8586
},
8687
postgresReadOnly: {
8788
enabled: false,
@@ -92,7 +93,8 @@ addDefaults(config, {
9293
port: 5432,
9394
readTimeout: 250,
9495
max: 10,
95-
idleTimeoutMillis: 10000
96+
idleTimeoutMillis: 10000,
97+
maxTries: 3
9698
},
9799
dumpDatabase: {
98100
enabled: false,

src/databases/Postgres.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,6 @@ export class Postgres implements IDatabase {
3333
private poolRead: Pool;
3434
private lastPoolReadFail = 0;
3535

36-
private maxTries = 3;
37-
3836
constructor(private config: DatabaseConfig) {}
3937

4038
async init(): Promise<void> {
@@ -141,7 +139,8 @@ export class Postgres implements IDatabase {
141139

142140
Logger.error(`prepare (postgres) try ${tries}: ${err}`);
143141
}
144-
} while (this.isReadQuery(type) && tries < this.maxTries);
142+
} while (this.isReadQuery(type) && tries < (lastPool === this.pool
143+
? this.config.postgres.maxTries : this.config.postgresReadOnly.maxTries));
145144
}
146145

147146
private getPool(type: string, options: QueryOption): Pool {

src/types/config.model.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ interface RedisConfig extends redis.RedisClientOptions {
88

99
export interface CustomPostgresConfig extends PoolConfig {
1010
enabled: boolean;
11+
maxTries: number;
1112
}
1213

1314
export interface CustomPostgresReadOnlyConfig extends CustomPostgresConfig {

0 commit comments

Comments
 (0)