Является ли хорошей практикой закрывать мое соединение после операций Sequelize? - PullRequest
0 голосов
/ 30 мая 2020

в настоящее время я разрабатываю приложение поверх Sequelize с использованием NodeJS / TypeScript, и мне интересно, может ли это вызвать проблемы с производительностью, не закрывая соединение.

Например, в микросервисе я нужны данные от 1 объекта.

const resolver = async (,,{db}) => {
  const entity1 = await db.models.Entity1.findOne()
  return entity1
}

Требуется ли закрывать соединение после вызова findOne?

Насколько я понимаю, следующая конфигурация определяет количество одновременных подключений и простоя - параметр, заставляющий диспетчер соединений закрывать соединение незанятых:

module.exports = {
  development: {
    host: 'db.sqlite',
    dialect: 'sqlite',
    pool: {
        max:5,
        min:0,
        idle:10000
    }
  },
  test: {
    host: 'test.sqlite',
    dialect: 'sqlite',
    pool: {
        max:5,
        min:0,
        idle:10000
    }
  }
}

Любые советы приветствуются

1 Ответ

1 голос
/ 30 мая 2020

Sequelize поддерживает внутренний пул соединений с базой данных , для чего нужны параметры pool, поэтому в этом нет необходимости. Каждый вызов фактически временно заимствует соединение, а затем по завершении возвращает его в пул.

Закрытие этого соединения вручную может отравить пул и вызвать проблемы с производительностью.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...