mariadb-pool-cuenti
Version:
Gestor inteligente de pools de conexiones para MariaDB/MySQL que maneja múltiples bases de datos de empresas (multi-tenant) de forma dinámica y eficiente
79 lines (74 loc) • 2.89 kB
TypeScript
// Generated by dts-bundle-generator v9.5.1
import { PoolConnection } from 'mariadb';
export type QueryParams = Record<string, unknown>;
export interface ExtendedConnection extends PoolConnection {
queryFormat(query: string, params?: QueryParams): string;
query2<T = unknown>(query: string, params?: QueryParams): Promise<T>;
safeRelease(): Promise<void>;
}
export declare class DBManager {
private static instance;
private listaServer;
private pool_bases;
private isInitialized;
private static shutdownInProgress;
private cleanupTimer;
private connections;
private constructor();
static getInstance(): DBManager;
static isShuttingDown(): boolean;
static setShuttingDown(value: boolean): void;
private setupCleanupTimer;
private setupGracefulShutdown;
private initBasePool;
getPoolBases(): Promise<ExtendedConnection>;
private consultaServidores;
getConnectionEmpresa(idEmpresa: number, _idAplicacion?: number): Promise<ExtendedConnection>;
private trackConnection;
disconnectConnection(conn: ExtendedConnection): Promise<void>;
cleanupStaleConnections(): Promise<{
closed: number;
leaksDetected: number;
}>;
getConnectionStats(): Record<string, any>;
private cleanup;
disconnectEmpresa(idEmpresa: number): Promise<number>;
}
export declare const disconnectConnection: (conn: ExtendedConnection) => Promise<void>;
/**
* Desconecta todas las conexiones asociadas a una empresa específica
* @param {number} idEmpresa - ID de la empresa cuyas conexiones serán desconectadas
* @returns {Promise<number>} Número de conexiones desconectadas
*/
export declare const disconnectEmpresa: (idEmpresa: number) => Promise<number>;
/**
* Comprueba si el sistema está en proceso de cierre
* @returns {boolean} true si el sistema está cerrándose
*/
export declare const isShuttingDown: typeof DBManager.isShuttingDown;
/**
* Realiza un cierre seguro de todas las conexiones de base de datos
* Usa este método antes de terminar la aplicación para evitar conexiones zombies
* @returns {Promise<void>} Promesa que se resuelve cuando se completa el cierre
*/
export declare const shutdown: () => Promise<void>;
/**
* Limpia las conexiones antiguas que podrían estar consumiendo recursos
* Además, detecta y maneja posibles fugas de conexiones
* @returns {Promise<{closed: number, leaksDetected: number}>} Número de conexiones cerradas y fugas detectadas
*/
export declare const cleanupStaleConnections: () => Promise<{
closed: number;
leaksDetected: number;
}>;
/**
* Obtiene estadísticas detalladas sobre el estado de las conexiones
* Útil para diagnosticar problemas de fugas de conexiones (connection leaks)
* @returns {Record<string, any>} Estadísticas detalladas de las conexiones
*/
export declare const getConnectionStats: () => Record<string, any>;
declare const _default: DBManager;
export {
_default as default,
};
export {};