Ajuste na db-pool

This commit is contained in:
JurTI-BR
2025-04-08 15:41:48 -03:00
parent b7e5cb64aa
commit 3188482c82
5 changed files with 167 additions and 190 deletions

View File

@@ -1,51 +0,0 @@
"use strict";
exports.__esModule = true;
exports.createOracleConfig = void 0;
var oracledb = require("oracledb");
// Inicializar o cliente Oracle
oracledb.initOracleClient({ libDir: "C:\\oracle" });
// Definir a estratégia de pool padrão para Oracle
oracledb.poolTimeout = 60; // timeout do pool em segundos
oracledb.queueTimeout = 60000; // timeout da fila em milissegundos
oracledb.poolIncrement = 1; // incremental de conexões
function createOracleConfig(config) {
// Obter configurações de ambiente ou usar valores padrão
var poolMin = parseInt(config.get('ORACLE_POOL_MIN', '5'));
var poolMax = parseInt(config.get('ORACLE_POOL_MAX', '20'));
var poolIncrement = parseInt(config.get('ORACLE_POOL_INCREMENT', '5'));
var poolTimeout = parseInt(config.get('ORACLE_POOL_TIMEOUT', '30000'));
var idleTimeout = parseInt(config.get('ORACLE_POOL_IDLE_TIMEOUT', '300000'));
// Validação de valores mínimos
var validPoolMin = Math.max(1, poolMin);
var validPoolMax = Math.max(validPoolMin + 1, poolMax);
var validPoolIncrement = Math.max(1, poolIncrement);
// Certifique-se de que poolMax é maior que poolMin
if (validPoolMax <= validPoolMin) {
console.warn('Warning: poolMax deve ser maior que poolMin. Ajustando poolMax para poolMin + 1');
}
var options = {
type: 'oracle',
connectString: config.get('ORACLE_CONNECT_STRING'),
username: config.get('ORACLE_USER'),
password: config.get('ORACLE_PASSWORD'),
synchronize: false,
logging: config.get('NODE_ENV') === 'development',
entities: [__dirname + '/../**/*.entity.{ts,js}'],
extra: {
// Configurações de pool
poolMin: validPoolMin,
poolMax: validPoolMax,
poolIncrement: validPoolIncrement,
poolTimeout: Math.floor(poolTimeout / 1000),
queueTimeout: 60000,
enableStats: true,
homogeneous: true,
poolPingInterval: 60,
stmtCacheSize: 30,
connectionClass: 'PORTALJURU',
idleTimeout: Math.floor(idleTimeout / 1000)
}
};
return options;
}
exports.createOracleConfig = createOracleConfig;

View File

@@ -1,45 +0,0 @@
"use strict";
exports.__esModule = true;
exports.createPostgresConfig = void 0;
function createPostgresConfig(config) {
// Obter configurações de ambiente ou usar valores padrão
var poolMin = parseInt(config.get('POSTGRES_POOL_MIN', '5'));
var poolMax = parseInt(config.get('POSTGRES_POOL_MAX', '20'));
var idleTimeout = parseInt(config.get('POSTGRES_POOL_IDLE_TIMEOUT', '30000'));
var connectionTimeout = parseInt(config.get('POSTGRES_POOL_CONNECTION_TIMEOUT', '5000'));
var acquireTimeout = parseInt(config.get('POSTGRES_POOL_ACQUIRE_TIMEOUT', '60000'));
// Validação de valores mínimos
var validPoolMin = Math.max(1, poolMin);
var validPoolMax = Math.max(validPoolMin + 1, poolMax);
var validIdleTimeout = Math.max(1000, idleTimeout);
var validConnectionTimeout = Math.max(1000, connectionTimeout);
var validAcquireTimeout = Math.max(1000, acquireTimeout);
var options = {
type: 'postgres',
host: config.get('POSTGRES_HOST'),
port: parseInt(config.get('POSTGRES_PORT', '5432')),
username: config.get('POSTGRES_USER'),
password: config.get('POSTGRES_PASSWORD'),
database: config.get('POSTGRES_DB'),
synchronize: config.get('NODE_ENV') === 'development',
entities: [__dirname + '/../**/*.entity.{ts,js}'],
ssl: config.get('NODE_ENV') === 'production' ? { rejectUnauthorized: false } : false,
logging: config.get('NODE_ENV') === 'development',
poolSize: validPoolMax,
extra: {
// Configuração de pool do PostgreSQL
min: validPoolMin,
max: validPoolMax,
idleTimeoutMillis: validIdleTimeout,
connectionTimeoutMillis: validConnectionTimeout,
acquireTimeoutMillis: validAcquireTimeout,
statement_timeout: 10000,
query_timeout: 10000
},
cache: {
duration: 60000
}
};
return options;
}
exports.createPostgresConfig = createPostgresConfig;