@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
TypeScript
/**
* 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[]>;
}