Тип или открытие слишком большого количества соединений в задании cron

#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);
};
 

Как я могу гарантировать, что открыто только одно или ограниченное количество подключений?