UNPKG

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
// 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 {};