#mysql #node.js #typeorm
Вопрос:
Я использую TypeORM
для запроса базы данных каждую минуту. Кажется, что каждый запрос открывает новое соединение/пул соединений по каждому запросу.
Моя работа cron вызывает метод, приведенный ниже.
export async function getBookings(): Promise<Array<$TODO>> {
try {
const db = await connection();
const data = db.query(`...SQL QUERY...`)
return data;
} catch (error) {
return Promise.reject(error);
}
}
Соединение, как показано ниже. Мои предположения здесь заключаются в том, что проверка существующего соединения должна использовать существующее соединение, а не создавать новое, однако через несколько минут у меня открыты десятки соединений.
export default async (): Promise<Connection> => {
const manager = getConnectionManager();
if (manager.has(config.name)) {
const connection = manager.get(config.name);
logger.info(`Connection manager has connection ${config.name}`);
if (connection.isConnected) {
logger.info(`Connection manager has connected connection ${config.name}`);
return Promise.resolve(getConnection(config.name));
}
logger.info(
`Connection manager reconnecting existing connection ${config.name}`
);
return await connection.connect();
}
logger.info(`Connection creating new connection ${config.name}`);
return createConnection(config);
};
Как я могу гарантировать, что открыто только одно или ограниченное количество подключений?