UNPKG

@yihuangdb/storage-object

Version:

A Node.js storage object layer library using Redis OM

53 lines 1.6 kB
import { RedisClientType } from 'redis'; import { ConnectionOptions } from './connection'; export interface PoolOptions extends ConnectionOptions { poolSize?: number; poolTimeout?: number; idleTimeout?: number; minConnections?: number; preWarm?: boolean; } export declare class ConnectionPool { private static instance; private pool; private waitQueue; private options; private cleanupInterval; private constructor(); private warmConnections; static getInstance(options?: PoolOptions): ConnectionPool; static reset(): void; private createConnection; acquire(): Promise<RedisClientType>; release(client: RedisClientType): void; warmUp(connections?: number): Promise<void>; destroy(client: RedisClientType): Promise<void>; private startCleanup; /** * Get pool statistics for monitoring * @returns Pool statistics including active connections, idle connections, etc. */ getStats(): { totalConnections: number; activeConnections: number; idleConnections: number; waitingRequests: number; poolSize: number; }; /** * Check if the pool is healthy * @returns true if pool is operating normally */ isHealthy(): boolean; /** * Update pool options dynamically * @param options - New pool options to apply */ updateOptions(options: Partial<PoolOptions>): void; /** * Force cleanup of idle connections */ forceCleanup(): void; shutdown(): Promise<void>; } //# sourceMappingURL=connection-pool.d.ts.map