@yihuangdb/storage-object
Version:
A Node.js storage object layer library using Redis OM
53 lines • 1.6 kB
TypeScript
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