redis-smq
Version:
A high-performance, reliable, and scalable message queue for Node.js.
50 lines • 2.76 kB
TypeScript
import { EventEmitter, ICallback, IRedisClient, IRedisConfig } from 'redis-smq-common';
import { ERedisConnectionAcquisitionMode, IConnectionPoolConfig, IRedisPooledConnection, TRedisConnectionPoolEvent } from './types/connection-pool.js';
export declare class RedisConnectionPool extends EventEmitter<TRedisConnectionPoolEvent> {
protected static instance: RedisConnectionPool | null;
protected readonly redisConfig: IRedisConfig;
protected readonly poolConfig: Required<IConnectionPoolConfig>;
protected readonly connections: Map<string, IRedisPooledConnection>;
protected readonly waitingQueue: Array<{
callback: ICallback<IRedisClient>;
timestamp: number;
mode: ERedisConnectionAcquisitionMode;
}>;
protected initialized: boolean;
protected shuttingDown: boolean;
protected reapTimer: NodeJS.Timeout | null;
protected connectionIdCounter: number;
protected constructor(redisConfig: IRedisConfig, poolConfig?: IConnectionPoolConfig);
static initialize(redisConfig: IRedisConfig, poolConfig: IConnectionPoolConfig | undefined, cb: ICallback<RedisConnectionPool>): void;
static getInstance(): RedisConnectionPool;
static shutdown(cb: ICallback): void;
protected releaseExclusiveConnection(connection: IRedisPooledConnection): void;
protected releaseSharedConnection(connection: IRedisPooledConnection): void;
protected createMinimumConnections(cb: ICallback): void;
protected createConnection(cb: ICallback<IRedisPooledConnection>): void;
protected findAvailableConnection(mode: ERedisConnectionAcquisitionMode): IRedisPooledConnection | null;
protected prepareConnection(connection: IRedisPooledConnection, mode: ERedisConnectionAcquisitionMode, cb: ICallback<IRedisClient>): void;
protected processWaitingQueue(): void;
protected startReaper(): void;
protected stopReaper(): void;
protected reapIdleConnections(): void;
protected destroyConnection(connectionId: string): void;
protected handleConnectionError(connectionId: string, error: Error): void;
protected getConnection(client: IRedisClient): IRedisPooledConnection | undefined;
protected getConnectionId(client: IRedisClient): string | null;
protected generateConnectionId(): string;
acquire(mode: ERedisConnectionAcquisitionMode, cb: ICallback<IRedisClient>): void;
release(client: IRedisClient): void;
destroy(client: IRedisClient, cb: ICallback): void;
getStats(): {
total: number;
available: number;
inUse: number;
exclusively: number;
shared: number;
sharedUsers: number;
waiting: number;
};
shutdown(cb: ICallback): void;
}
//# sourceMappingURL=redis-connection-pool.d.ts.map