af-db-ts 2.0.4 → 2.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/src/common.js +3 -1
- package/dist/cjs/src/common.js.map +1 -1
- package/dist/cjs/src/mssql/pool-ms.js +36 -4
- package/dist/cjs/src/mssql/pool-ms.js.map +1 -1
- package/dist/cjs/src/pg/pg-pool.js +19 -1
- package/dist/cjs/src/pg/pg-pool.js.map +1 -1
- package/dist/esm/src/common.js +2 -0
- package/dist/esm/src/common.js.map +1 -1
- package/dist/esm/src/mssql/pool-ms.js +37 -5
- package/dist/esm/src/mssql/pool-ms.js.map +1 -1
- package/dist/esm/src/pg/pg-pool.js +19 -1
- package/dist/esm/src/pg/pg-pool.js.map +1 -1
- package/dist/types/src/common.d.ts +2 -0
- package/dist/types/src/common.d.ts.map +1 -1
- package/dist/types/src/mssql/pool-ms.d.ts.map +1 -1
- package/dist/types/src/pg/pg-pool.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/common.ts +3 -0
- package/src/mssql/pool-ms.ts +37 -5
- package/src/pg/pg-pool.ts +20 -1
package/dist/cjs/src/common.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.graceExit = exports.closeAllDb = exports.logSqlError = void 0;
|
|
3
|
+
exports._1_HOUR = exports._3_HOURS = exports.graceExit = exports.closeAllDb = exports.logSqlError = void 0;
|
|
4
4
|
const af_color_1 = require("af-color");
|
|
5
5
|
const pg_pool_1 = require("./pg/pg-pool");
|
|
6
6
|
const pool_ms_1 = require("./mssql/pool-ms");
|
|
@@ -32,4 +32,6 @@ const graceExit = async () => {
|
|
|
32
32
|
process.exit(0);
|
|
33
33
|
};
|
|
34
34
|
exports.graceExit = graceExit;
|
|
35
|
+
exports._3_HOURS = 3600000 * 3; // 3 ч
|
|
36
|
+
exports._1_HOUR = 3600000; // 1 ч
|
|
35
37
|
//# sourceMappingURL=common.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../../src/common.ts"],"names":[],"mappings":";;;AAAA,uCAAmC;AACnC,0CAAuD;AACvD,6CAA0D;AAC1D,iDAAwC;AAEjC,MAAM,WAAW,GAAG,CAAC,GAAgB,EAAE,UAAoB,EAAE,OAAgB,EAAE,MAAe,EAAE,EAAE;IACvG,IAAI,MAAM,EAAE;QACV,qBAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;KACtB;IACD,IAAI,OAAO,EAAE;QACX,qBAAM,CAAC,KAAK,CAAC,eAAe,kBAAO,GAAG,OAAO,EAAE,CAAC,CAAC;KAClD;IACD,qBAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAClB,IAAI,UAAU,EAAE;QACd,MAAM,GAAG,CAAC;KACX;AACH,CAAC,CAAC;AAXW,QAAA,WAAW,eAWtB;AAEK,MAAM,UAAU,GAAG,KAAK,IAAI,EAAE;IACnC,MAAM,IAAA,iCAAuB,GAAE,CAAC;IAChC,MAAM,IAAA,iCAAuB,GAAE,CAAC;AAClC,CAAC,CAAC;AAHW,QAAA,UAAU,cAGrB;AAEF;;GAEG;AACI,MAAM,SAAS,GAAG,KAAK,IAAI,EAAE;IAClC,MAAM,IAAA,iCAAuB,GAAE,CAAC;IAChC,MAAM,IAAA,iCAAuB,GAAE,CAAC;IAChC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC;AAJW,QAAA,SAAS,aAIpB"}
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../../src/common.ts"],"names":[],"mappings":";;;AAAA,uCAAmC;AACnC,0CAAuD;AACvD,6CAA0D;AAC1D,iDAAwC;AAEjC,MAAM,WAAW,GAAG,CAAC,GAAgB,EAAE,UAAoB,EAAE,OAAgB,EAAE,MAAe,EAAE,EAAE;IACvG,IAAI,MAAM,EAAE;QACV,qBAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;KACtB;IACD,IAAI,OAAO,EAAE;QACX,qBAAM,CAAC,KAAK,CAAC,eAAe,kBAAO,GAAG,OAAO,EAAE,CAAC,CAAC;KAClD;IACD,qBAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAClB,IAAI,UAAU,EAAE;QACd,MAAM,GAAG,CAAC;KACX;AACH,CAAC,CAAC;AAXW,QAAA,WAAW,eAWtB;AAEK,MAAM,UAAU,GAAG,KAAK,IAAI,EAAE;IACnC,MAAM,IAAA,iCAAuB,GAAE,CAAC;IAChC,MAAM,IAAA,iCAAuB,GAAE,CAAC;AAClC,CAAC,CAAC;AAHW,QAAA,UAAU,cAGrB;AAEF;;GAEG;AACI,MAAM,SAAS,GAAG,KAAK,IAAI,EAAE;IAClC,MAAM,IAAA,iCAAuB,GAAE,CAAC;IAChC,MAAM,IAAA,iCAAuB,GAAE,CAAC;IAChC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC;AAJW,QAAA,SAAS,aAIpB;AAEW,QAAA,QAAQ,GAAG,OAAS,GAAG,CAAC,CAAC,CAAC,MAAM;AAChC,QAAA,OAAO,GAAG,OAAS,CAAC,CAAC,MAAM"}
|
|
@@ -36,11 +36,31 @@ const mssqlConfigs = config_1.default.get('db.postgres');
|
|
|
36
36
|
const getDbConfigMs = (connectionId) => mssqlConfigs.dbs[connectionId];
|
|
37
37
|
exports.getDbConfigMs = getDbConfigMs;
|
|
38
38
|
exports.poolsCacheMs = {};
|
|
39
|
+
const defaultOptions = {
|
|
40
|
+
// node_modules/tedious/lib/connection.js:284
|
|
41
|
+
options: { enableArithAbort: false },
|
|
42
|
+
pool: {
|
|
43
|
+
max: 100,
|
|
44
|
+
min: 1,
|
|
45
|
+
idleTimeoutMillis: common_1._3_HOURS,
|
|
46
|
+
acquireTimeoutMillis: common_1._3_HOURS,
|
|
47
|
+
createTimeoutMillis: common_1._3_HOURS,
|
|
48
|
+
destroyTimeoutMillis: common_1._3_HOURS,
|
|
49
|
+
reapIntervalMillis: common_1._3_HOURS,
|
|
50
|
+
createRetryIntervalMillis: common_1._3_HOURS,
|
|
51
|
+
},
|
|
52
|
+
trustServerCertificate: true,
|
|
53
|
+
stream: false,
|
|
54
|
+
parseJSON: false,
|
|
55
|
+
requestTimeout: common_1._1_HOUR,
|
|
56
|
+
connectionTimeout: 2 * 60000, // 2 min
|
|
57
|
+
};
|
|
39
58
|
/**
|
|
40
59
|
* Возвращает пул соединений для БД, соответствующей преданному ID соединения (borf|cep|hr|global)
|
|
41
60
|
* В случае, если не удается создать пул или открыть соединение, прерывает работу скрипта
|
|
42
61
|
*/
|
|
43
62
|
const getPoolConnectionMs = async (connectionId, options = {}) => {
|
|
63
|
+
var _a, _b, _c;
|
|
44
64
|
const { prefix = '', errorCode = 0 } = options;
|
|
45
65
|
let pool = exports.poolsCacheMs[connectionId];
|
|
46
66
|
if (pool === null || pool === void 0 ? void 0 : pool.connected) {
|
|
@@ -56,15 +76,27 @@ const getPoolConnectionMs = async (connectionId, options = {}) => {
|
|
|
56
76
|
}
|
|
57
77
|
};
|
|
58
78
|
try {
|
|
59
|
-
const
|
|
60
|
-
|
|
79
|
+
const { database, db } = config_1.default;
|
|
80
|
+
let dbOptions;
|
|
81
|
+
let namedDbConfig;
|
|
82
|
+
if (database) {
|
|
83
|
+
namedDbConfig = database[connectionId];
|
|
84
|
+
if (!namedDbConfig) {
|
|
85
|
+
resume(`Missing configuration for DB id "${connectionId}"`);
|
|
86
|
+
}
|
|
87
|
+
dbOptions = database._common_ || {};
|
|
88
|
+
}
|
|
89
|
+
else if (db) {
|
|
90
|
+
namedDbConfig = (_b = (_a = db === null || db === void 0 ? void 0 : db.mssql) === null || _a === void 0 ? void 0 : _a.dbs) === null || _b === void 0 ? void 0 : _b[connectionId];
|
|
91
|
+
dbOptions = ((_c = db === null || db === void 0 ? void 0 : db.mssql) === null || _c === void 0 ? void 0 : _c.options) || {};
|
|
92
|
+
}
|
|
61
93
|
if (!namedDbConfig) {
|
|
62
94
|
resume(`Missing configuration for DB id "${connectionId}"`);
|
|
63
95
|
}
|
|
64
|
-
const dbConfig = config_1.default.util.extendDeep(
|
|
96
|
+
const dbConfig = config_1.default.util.extendDeep(defaultOptions, dbOptions, namedDbConfig);
|
|
65
97
|
if (pool === null || pool === void 0 ? void 0 : pool.connecting) {
|
|
66
98
|
const startTs = Date.now();
|
|
67
|
-
while ((pool === null || pool === void 0 ? void 0 : pool.connecting) && (Date.now() - startTs < dbConfig.connectionTimeout)) {
|
|
99
|
+
while ((pool === null || pool === void 0 ? void 0 : pool.connecting) && (Date.now() - startTs < (dbConfig.connectionTimeout || defaultOptions.connectionTimeout))) {
|
|
68
100
|
// eslint-disable-next-line no-await-in-loop
|
|
69
101
|
await (0, af_tools_ts_1.sleep)(100);
|
|
70
102
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pool-ms.js","sourceRoot":"","sources":["../../../../src/mssql/pool-ms.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oDAA4B;AAC5B,2CAAkC;AAClC,2CAA6B;AAE7B,6CAAoC;AAEpC,
|
|
1
|
+
{"version":3,"file":"pool-ms.js","sourceRoot":"","sources":["../../../../src/mssql/pool-ms.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,11 +8,29 @@ const config_1 = __importDefault(require("config"));
|
|
|
8
8
|
const pg_1 = require("pg");
|
|
9
9
|
const af_echo_ts_1 = require("af-echo-ts");
|
|
10
10
|
const logger_error_1 = require("../logger-error");
|
|
11
|
+
const common_1 = require("../common");
|
|
11
12
|
const pgConfigs = config_1.default.get('db.postgres');
|
|
13
|
+
const defaultOptions = {
|
|
14
|
+
// all valid client config options are also valid here
|
|
15
|
+
// in addition here are the pool specific configuration parameters:
|
|
16
|
+
// number of milliseconds to wait before timing out when connecting a new client
|
|
17
|
+
// by default this is 0 which means no timeout
|
|
18
|
+
connectionTimeoutMillis: 5 * 60000,
|
|
19
|
+
// number of milliseconds a client must sit idle in the pool and not be checked out
|
|
20
|
+
// before it is disconnected from the backend and discarded
|
|
21
|
+
// default is 10000 (10 seconds) - set to 0 to disable auto-disconnection of idle clients
|
|
22
|
+
idleTimeoutMillis: common_1._3_HOURS,
|
|
23
|
+
// maximum number of clients the pool should contain
|
|
24
|
+
// by default this is set to 10.
|
|
25
|
+
max: 10,
|
|
26
|
+
statement_timeout: common_1._3_HOURS,
|
|
27
|
+
query_timeout: common_1._3_HOURS, // number of milliseconds before a query call will timeout, default is no timeout
|
|
28
|
+
};
|
|
12
29
|
exports.poolsCachePg = {};
|
|
13
30
|
const getPoolPg = async (connectionId) => {
|
|
14
31
|
if (!exports.poolsCachePg[connectionId]) {
|
|
15
|
-
const
|
|
32
|
+
const namedDbConfig = pgConfigs.dbs[connectionId];
|
|
33
|
+
const poolConfig = config_1.default.util.extendDeep(defaultOptions, pgConfigs.options, namedDbConfig);
|
|
16
34
|
const pool = new pg_1.Pool(poolConfig);
|
|
17
35
|
exports.poolsCachePg[connectionId] = pool;
|
|
18
36
|
pool.on('error', (err, client) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pg-pool.js","sourceRoot":"","sources":["../../../../src/pg/pg-pool.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA4B;AAC5B,2BAAkD;AAClD,2CAAkC;AAClC,kDAAyC;
|
|
1
|
+
{"version":3,"file":"pg-pool.js","sourceRoot":"","sources":["../../../../src/pg/pg-pool.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/src/common.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../../src/common.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAExC,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,GAAgB,EAAE,UAAoB,EAAE,OAAgB,EAAE,MAAe,EAAE,EAAE;IACvG,IAAI,MAAM,EAAE;QACV,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;KACtB;IACD,IAAI,OAAO,EAAE;QACX,MAAM,CAAC,KAAK,CAAC,eAAe,OAAO,GAAG,OAAO,EAAE,CAAC,CAAC;KAClD;IACD,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAClB,IAAI,UAAU,EAAE;QACd,MAAM,GAAG,CAAC;KACX;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,IAAI,EAAE;IACnC,MAAM,uBAAuB,EAAE,CAAC;IAChC,MAAM,uBAAuB,EAAE,CAAC;AAClC,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,IAAI,EAAE;IAClC,MAAM,uBAAuB,EAAE,CAAC;IAChC,MAAM,uBAAuB,EAAE,CAAC;IAChC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../../src/common.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAExC,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,GAAgB,EAAE,UAAoB,EAAE,OAAgB,EAAE,MAAe,EAAE,EAAE;IACvG,IAAI,MAAM,EAAE;QACV,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;KACtB;IACD,IAAI,OAAO,EAAE;QACX,MAAM,CAAC,KAAK,CAAC,eAAe,OAAO,GAAG,OAAO,EAAE,CAAC,CAAC;KAClD;IACD,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAClB,IAAI,UAAU,EAAE;QACd,MAAM,GAAG,CAAC;KACX;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,IAAI,EAAE;IACnC,MAAM,uBAAuB,EAAE,CAAC;IAChC,MAAM,uBAAuB,EAAE,CAAC;AAClC,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,IAAI,EAAE;IAClC,MAAM,uBAAuB,EAAE,CAAC;IAChC,MAAM,uBAAuB,EAAE,CAAC;IAChC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG,OAAS,GAAG,CAAC,CAAC,CAAC,MAAM;AAC7C,MAAM,CAAC,MAAM,OAAO,GAAG,OAAS,CAAC,CAAC,MAAM"}
|
|
@@ -2,15 +2,35 @@ import config from 'config';
|
|
|
2
2
|
import { echo } from 'af-echo-ts';
|
|
3
3
|
import * as sql from 'mssql';
|
|
4
4
|
import { sleep } from 'af-tools-ts';
|
|
5
|
-
import { logSqlError } from '../common';
|
|
5
|
+
import { logSqlError, _3_HOURS, _1_HOUR } from '../common';
|
|
6
6
|
const mssqlConfigs = config.get('db.postgres');
|
|
7
7
|
export const getDbConfigMs = (connectionId) => mssqlConfigs.dbs[connectionId];
|
|
8
8
|
export const poolsCacheMs = {};
|
|
9
|
+
const defaultOptions = {
|
|
10
|
+
// node_modules/tedious/lib/connection.js:284
|
|
11
|
+
options: { enableArithAbort: false },
|
|
12
|
+
pool: {
|
|
13
|
+
max: 100,
|
|
14
|
+
min: 1,
|
|
15
|
+
idleTimeoutMillis: _3_HOURS,
|
|
16
|
+
acquireTimeoutMillis: _3_HOURS,
|
|
17
|
+
createTimeoutMillis: _3_HOURS,
|
|
18
|
+
destroyTimeoutMillis: _3_HOURS,
|
|
19
|
+
reapIntervalMillis: _3_HOURS,
|
|
20
|
+
createRetryIntervalMillis: _3_HOURS,
|
|
21
|
+
},
|
|
22
|
+
trustServerCertificate: true,
|
|
23
|
+
stream: false,
|
|
24
|
+
parseJSON: false,
|
|
25
|
+
requestTimeout: _1_HOUR,
|
|
26
|
+
connectionTimeout: 2 * 60000, // 2 min
|
|
27
|
+
};
|
|
9
28
|
/**
|
|
10
29
|
* Возвращает пул соединений для БД, соответствующей преданному ID соединения (borf|cep|hr|global)
|
|
11
30
|
* В случае, если не удается создать пул или открыть соединение, прерывает работу скрипта
|
|
12
31
|
*/
|
|
13
32
|
export const getPoolConnectionMs = async (connectionId, options = {}) => {
|
|
33
|
+
var _a, _b, _c;
|
|
14
34
|
const { prefix = '', errorCode = 0 } = options;
|
|
15
35
|
let pool = poolsCacheMs[connectionId];
|
|
16
36
|
if (pool === null || pool === void 0 ? void 0 : pool.connected) {
|
|
@@ -26,15 +46,27 @@ export const getPoolConnectionMs = async (connectionId, options = {}) => {
|
|
|
26
46
|
}
|
|
27
47
|
};
|
|
28
48
|
try {
|
|
29
|
-
const
|
|
30
|
-
|
|
49
|
+
const { database, db } = config;
|
|
50
|
+
let dbOptions;
|
|
51
|
+
let namedDbConfig;
|
|
52
|
+
if (database) {
|
|
53
|
+
namedDbConfig = database[connectionId];
|
|
54
|
+
if (!namedDbConfig) {
|
|
55
|
+
resume(`Missing configuration for DB id "${connectionId}"`);
|
|
56
|
+
}
|
|
57
|
+
dbOptions = database._common_ || {};
|
|
58
|
+
}
|
|
59
|
+
else if (db) {
|
|
60
|
+
namedDbConfig = (_b = (_a = db === null || db === void 0 ? void 0 : db.mssql) === null || _a === void 0 ? void 0 : _a.dbs) === null || _b === void 0 ? void 0 : _b[connectionId];
|
|
61
|
+
dbOptions = ((_c = db === null || db === void 0 ? void 0 : db.mssql) === null || _c === void 0 ? void 0 : _c.options) || {};
|
|
62
|
+
}
|
|
31
63
|
if (!namedDbConfig) {
|
|
32
64
|
resume(`Missing configuration for DB id "${connectionId}"`);
|
|
33
65
|
}
|
|
34
|
-
const dbConfig = config.util.extendDeep(
|
|
66
|
+
const dbConfig = config.util.extendDeep(defaultOptions, dbOptions, namedDbConfig);
|
|
35
67
|
if (pool === null || pool === void 0 ? void 0 : pool.connecting) {
|
|
36
68
|
const startTs = Date.now();
|
|
37
|
-
while ((pool === null || pool === void 0 ? void 0 : pool.connecting) && (Date.now() - startTs < dbConfig.connectionTimeout)) {
|
|
69
|
+
while ((pool === null || pool === void 0 ? void 0 : pool.connecting) && (Date.now() - startTs < (dbConfig.connectionTimeout || defaultOptions.connectionTimeout))) {
|
|
38
70
|
// eslint-disable-next-line no-await-in-loop
|
|
39
71
|
await sleep(100);
|
|
40
72
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pool-ms.js","sourceRoot":"","sources":["../../../../src/mssql/pool-ms.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,KAAK,GAAG,MAAM,OAAO,CAAC;AAE7B,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"pool-ms.js","sourceRoot":"","sources":["../../../../src/mssql/pool-ms.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,11 +2,29 @@ import config from 'config';
|
|
|
2
2
|
import { Pool } from 'pg';
|
|
3
3
|
import { echo } from 'af-echo-ts';
|
|
4
4
|
import { logger } from '../logger-error';
|
|
5
|
+
import { _3_HOURS } from '../common';
|
|
5
6
|
const pgConfigs = config.get('db.postgres');
|
|
7
|
+
const defaultOptions = {
|
|
8
|
+
// all valid client config options are also valid here
|
|
9
|
+
// in addition here are the pool specific configuration parameters:
|
|
10
|
+
// number of milliseconds to wait before timing out when connecting a new client
|
|
11
|
+
// by default this is 0 which means no timeout
|
|
12
|
+
connectionTimeoutMillis: 5 * 60000,
|
|
13
|
+
// number of milliseconds a client must sit idle in the pool and not be checked out
|
|
14
|
+
// before it is disconnected from the backend and discarded
|
|
15
|
+
// default is 10000 (10 seconds) - set to 0 to disable auto-disconnection of idle clients
|
|
16
|
+
idleTimeoutMillis: _3_HOURS,
|
|
17
|
+
// maximum number of clients the pool should contain
|
|
18
|
+
// by default this is set to 10.
|
|
19
|
+
max: 10,
|
|
20
|
+
statement_timeout: _3_HOURS,
|
|
21
|
+
query_timeout: _3_HOURS, // number of milliseconds before a query call will timeout, default is no timeout
|
|
22
|
+
};
|
|
6
23
|
export const poolsCachePg = {};
|
|
7
24
|
export const getPoolPg = async (connectionId) => {
|
|
8
25
|
if (!poolsCachePg[connectionId]) {
|
|
9
|
-
const
|
|
26
|
+
const namedDbConfig = pgConfigs.dbs[connectionId];
|
|
27
|
+
const poolConfig = config.util.extendDeep(defaultOptions, pgConfigs.options, namedDbConfig);
|
|
10
28
|
const pool = new Pool(poolConfig);
|
|
11
29
|
poolsCachePg[connectionId] = pool;
|
|
12
30
|
pool.on('error', (err, client) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pg-pool.js","sourceRoot":"","sources":["../../../../src/pg/pg-pool.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,IAAI,EAA0B,MAAM,IAAI,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"pg-pool.js","sourceRoot":"","sources":["../../../../src/pg/pg-pool.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,4 +4,6 @@ export declare const closeAllDb: () => Promise<void>;
|
|
|
4
4
|
* Закрывает все соединения с БД и завершает работу скрипта
|
|
5
5
|
*/
|
|
6
6
|
export declare const graceExit: () => Promise<never>;
|
|
7
|
+
export declare const _3_HOURS: number;
|
|
8
|
+
export declare const _1_HOUR = 3600000;
|
|
7
9
|
//# sourceMappingURL=common.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../src/common.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,WAAW,QAAS,KAAK,GAAG,GAAG,eAAe,OAAO,YAAY,MAAM,WAAW,MAAM,SAWpG,CAAC;AAEF,eAAO,MAAM,UAAU,qBAGtB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,SAAS,sBAIrB,CAAC"}
|
|
1
|
+
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../src/common.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,WAAW,QAAS,KAAK,GAAG,GAAG,eAAe,OAAO,YAAY,MAAM,WAAW,MAAM,SAWpG,CAAC;AAEF,eAAO,MAAM,UAAU,qBAGtB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,SAAS,sBAIrB,CAAC;AAEF,eAAO,MAAM,QAAQ,QAAgB,CAAC;AACtC,eAAO,MAAM,OAAO,UAAY,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pool-ms.d.ts","sourceRoot":"","sources":["../../../../src/mssql/pool-ms.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,GAAG,MAAM,OAAO,CAAC;AAC7B,OAAO,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAIvC,OAAO,EAAE,kBAAkB,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAC;AAIjF,eAAO,MAAM,aAAa,iBAAkB,MAAM,6CAAmC,CAAC;AAEtF,eAAO,MAAM,YAAY,EAAE,kBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"pool-ms.d.ts","sourceRoot":"","sources":["../../../../src/mssql/pool-ms.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,GAAG,MAAM,OAAO,CAAC;AAC7B,OAAO,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAIvC,OAAO,EAAE,kBAAkB,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAC;AAIjF,eAAO,MAAM,aAAa,iBAAkB,MAAM,6CAAmC,CAAC;AAEtF,eAAO,MAAM,YAAY,EAAE,kBAAuB,CAAC;AAsBnD;;;GAGG;AACH,eAAO,MAAM,mBAAmB,iBAAwB,MAAM,YAAW,2BAA2B,KAAQ,QAAQ,cAAc,GAAG,SAAS,CA+D7I,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,iBAAwB,cAAc,GAAG,cAAc,EAAE,GAAG,MAAM,GAAG,MAAM,EAAE,WAAW,MAAM,WAAW,OAAO,kBAsChJ,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,qBAAqB,YAAmB,MAAM,WAAW,OAAO,kBAG5E,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,YAAmB,MAAM,WAAW,OAAO,kBAG9E,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,yBAAyB,iBAAwB,cAAc,GAAG,cAAc,EAAE,WAAW,MAAM,mBAG/G,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,2BAA2B,iBAAwB,cAAc,GAAG,cAAc,EAAE,WAAW,MAAM,mBAGjH,CAAC;AAEF,eAAO,MAAM,SAAS,iBAAwB,MAAM,eAAe,OAAO,4CAMzE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pg-pool.d.ts","sourceRoot":"","sources":["../../../../src/pg/pg-pool.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,kBAAkB,EAAiB,OAAO,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"pg-pool.d.ts","sourceRoot":"","sources":["../../../../src/pg/pg-pool.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,kBAAkB,EAAiB,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAsB5E,eAAO,MAAM,YAAY,EAAE,kBAAuB,CAAC;AAEnD,eAAO,MAAM,SAAS,iBAAwB,MAAM,KAAG,QAAQ,OAAO,CAqBrE,CAAC;AAEF,eAAO,MAAM,WAAW,iBAAwB,MAAM,KAAG,QAAQ,OAAO,CAavE,CAAC;AAEF,eAAO,MAAM,uBAAuB,0BAAsG,CAAC"}
|
package/package.json
CHANGED
package/src/common.ts
CHANGED
package/src/mssql/pool-ms.ts
CHANGED
|
@@ -4,7 +4,7 @@ import * as sql from 'mssql';
|
|
|
4
4
|
import { ConnectionPool } from 'mssql';
|
|
5
5
|
import { sleep } from 'af-tools-ts';
|
|
6
6
|
import { IDbOptionsMs, IDbsMs } from '../@types/i-config';
|
|
7
|
-
import { logSqlError } from '../common';
|
|
7
|
+
import { logSqlError, _3_HOURS, _1_HOUR } from '../common';
|
|
8
8
|
import { IConnectionPoolsMs, TGetPoolConnectionOptionsMs } from '../@types/i-ms';
|
|
9
9
|
|
|
10
10
|
const mssqlConfigs = config.get<{ options: IDbOptionsMs, dbs: IDbsMs }>('db.postgres');
|
|
@@ -13,6 +13,26 @@ export const getDbConfigMs = (connectionId: string) => mssqlConfigs.dbs[connecti
|
|
|
13
13
|
|
|
14
14
|
export const poolsCacheMs: IConnectionPoolsMs = {};
|
|
15
15
|
|
|
16
|
+
const defaultOptions: IDbOptionsMs = {
|
|
17
|
+
// node_modules/tedious/lib/connection.js:284
|
|
18
|
+
options: { enableArithAbort: false },
|
|
19
|
+
pool: {
|
|
20
|
+
max: 100,
|
|
21
|
+
min: 1,
|
|
22
|
+
idleTimeoutMillis: _3_HOURS,
|
|
23
|
+
acquireTimeoutMillis: _3_HOURS,
|
|
24
|
+
createTimeoutMillis: _3_HOURS,
|
|
25
|
+
destroyTimeoutMillis: _3_HOURS,
|
|
26
|
+
reapIntervalMillis: _3_HOURS,
|
|
27
|
+
createRetryIntervalMillis: _3_HOURS,
|
|
28
|
+
},
|
|
29
|
+
trustServerCertificate: true,
|
|
30
|
+
stream: false,
|
|
31
|
+
parseJSON: false,
|
|
32
|
+
requestTimeout: _1_HOUR,
|
|
33
|
+
connectionTimeout: 2 * 60_000, // 2 min
|
|
34
|
+
};
|
|
35
|
+
|
|
16
36
|
/**
|
|
17
37
|
* Возвращает пул соединений для БД, соответствующей преданному ID соединения (borf|cep|hr|global)
|
|
18
38
|
* В случае, если не удается создать пул или открыть соединение, прерывает работу скрипта
|
|
@@ -32,15 +52,27 @@ export const getPoolConnectionMs = async (connectionId: string, options: TGetPoo
|
|
|
32
52
|
}
|
|
33
53
|
};
|
|
34
54
|
try {
|
|
35
|
-
const
|
|
36
|
-
|
|
55
|
+
const { database, db } = config as any;
|
|
56
|
+
let dbOptions: any;
|
|
57
|
+
let namedDbConfig: any;
|
|
58
|
+
if (database) {
|
|
59
|
+
namedDbConfig = database[connectionId];
|
|
60
|
+
if (!namedDbConfig) {
|
|
61
|
+
resume(`Missing configuration for DB id "${connectionId}"`);
|
|
62
|
+
}
|
|
63
|
+
dbOptions = database._common_ || {};
|
|
64
|
+
} else if (db) {
|
|
65
|
+
namedDbConfig = db?.mssql?.dbs?.[connectionId];
|
|
66
|
+
dbOptions = db?.mssql?.options || {};
|
|
67
|
+
}
|
|
37
68
|
if (!namedDbConfig) {
|
|
38
69
|
resume(`Missing configuration for DB id "${connectionId}"`);
|
|
39
70
|
}
|
|
40
|
-
const dbConfig = config.util.extendDeep(
|
|
71
|
+
const dbConfig: sql.config = config.util.extendDeep(defaultOptions, dbOptions, namedDbConfig);
|
|
72
|
+
|
|
41
73
|
if (pool?.connecting) {
|
|
42
74
|
const startTs = Date.now();
|
|
43
|
-
while (pool?.connecting && (Date.now() - startTs < dbConfig.connectionTimeout)) {
|
|
75
|
+
while (pool?.connecting && (Date.now() - startTs < (dbConfig.connectionTimeout || defaultOptions.connectionTimeout))) {
|
|
44
76
|
// eslint-disable-next-line no-await-in-loop
|
|
45
77
|
await sleep(100);
|
|
46
78
|
}
|
package/src/pg/pg-pool.ts
CHANGED
|
@@ -4,14 +4,33 @@ import { echo } from 'af-echo-ts';
|
|
|
4
4
|
import { logger } from '../logger-error';
|
|
5
5
|
import { IDbOptionsPg, IDbsPg } from '../@types/i-config';
|
|
6
6
|
import { IConnectionPoolsPg, IPoolClientPg, IPoolPg } from '../@types/i-pg';
|
|
7
|
+
import { _3_HOURS } from '../common';
|
|
7
8
|
|
|
8
9
|
const pgConfigs = config.get<{ options: IDbOptionsPg, dbs: IDbsPg }>('db.postgres');
|
|
9
10
|
|
|
11
|
+
const defaultOptions: IDbOptionsPg = {
|
|
12
|
+
// all valid client config options are also valid here
|
|
13
|
+
// in addition here are the pool specific configuration parameters:
|
|
14
|
+
// number of milliseconds to wait before timing out when connecting a new client
|
|
15
|
+
// by default this is 0 which means no timeout
|
|
16
|
+
connectionTimeoutMillis: 5 * 60_000, // 5 min
|
|
17
|
+
// number of milliseconds a client must sit idle in the pool and not be checked out
|
|
18
|
+
// before it is disconnected from the backend and discarded
|
|
19
|
+
// default is 10000 (10 seconds) - set to 0 to disable auto-disconnection of idle clients
|
|
20
|
+
idleTimeoutMillis: _3_HOURS, // 3 h
|
|
21
|
+
// maximum number of clients the pool should contain
|
|
22
|
+
// by default this is set to 10.
|
|
23
|
+
max: 10,
|
|
24
|
+
statement_timeout: _3_HOURS, // number of milliseconds before a statement in query will time out, default is no timeout
|
|
25
|
+
query_timeout: _3_HOURS, // number of milliseconds before a query call will timeout, default is no timeout
|
|
26
|
+
};
|
|
27
|
+
|
|
10
28
|
export const poolsCachePg: IConnectionPoolsPg = {};
|
|
11
29
|
|
|
12
30
|
export const getPoolPg = async (connectionId: string): Promise<IPoolPg> => {
|
|
13
31
|
if (!poolsCachePg[connectionId]) {
|
|
14
|
-
const
|
|
32
|
+
const namedDbConfig = pgConfigs.dbs[connectionId];
|
|
33
|
+
const poolConfig: PoolConfig = config.util.extendDeep(defaultOptions, pgConfigs.options, namedDbConfig);
|
|
15
34
|
const pool = new Pool(poolConfig) as IPoolPg;
|
|
16
35
|
poolsCachePg[connectionId] = pool;
|
|
17
36
|
pool.on('error', (err: Error, client: PoolClient) => {
|