UNPKG

@voicenter-team/mysql-dynamic-cluster

Version:

Galera cluster with implementation of dynamic choose mysql server for queries, caching, hashing it and metrics

54 lines (53 loc) 1.65 kB
/** * Created by Bohdan on Sep, 2021 */ import { PoolStatus } from './PoolStatus'; import { IQueryOptions, QueryResult } from "../types/PoolInterfaces"; import { IUserPoolSettings } from "../types/PoolSettingsInterfaces"; export declare class Pool { private readonly _status; get status(): PoolStatus; readonly id: number; readonly name: string; readonly host: string; readonly port: number; readonly connectionLimit: number; private readonly _user; private readonly _password; private readonly _database; private readonly _queryTimeout; private readonly _slowQueryTime; private readonly _redisFactor; private readonly _redisExpire; private _pool; /** * @param settings pool settings * @param clusterName cluster name used for prefix */ constructor(settings: IUserPoolSettings, clusterName: string); /** * Create pool connection */ connect(): Promise<void>; /** * Connect events in pool * @private */ private _connectEvents; /** * Close pool connection */ disconnect(): void; /** * Pool query * @param sql mysql query string * @param queryOptions query options like timeout, database, multipleStatements etc */ query<T extends QueryResult>(sql: string, queryOptions?: IQueryOptions): Promise<T | T[]>; /** * Pool query by mysql transaction * @param sqls array of sql queries * @param queryOptions query options like timeout, database etc. */ multiStatementQuery<T extends QueryResult>(sqls: string[], queryOptions: IQueryOptions): Promise<T[]>; }