Узел создает новые подключения mysql при параллельном выполнении и не завершает новые подключения

0

Я пытаюсь написать программу с использованием loopback - node - mysql которой выполняются вызовы с параллельной БД (MySQL). Существует уже постоянная связь между узлом и MySQL. Когда выполняются параллельные вызовы, для выполнения запроса создаются дополнительные подключения к базе данных MySQL. Но по завершении параллельных вызовов и функций новые подключения к MySQL все еще сохраняются. Таким образом, в долгосрочной перспективе большое количество соединений связано с MySQL DB, которые не закрываются после использования.
Вот мой код

function getSubTypeIdAndOrderForNewTimelineStory(gameId, name) {
  var deferred = $q.defer();
  async.parallel([
  function (callback) {
    getTimelineStorySubType(name).then(function (timelineStorySubType) {
      callback(null, timelineStorySubType.id);
    }).fail(function (error) {
      callback(error);
    });
  },
function (callback) {
  getLastTimeLineStory(gameId).then(function (gameTimelineStory) {
    callback(null, gameTimelineStory? gameTimelineStory.order+1: 1);
  }).fail(function (error) {
     callback(error);
  });
 }
], function (error, result) {
  if(error){
  deferred.reject(error);
}
else {
  var response = {
    gameTimelineStorySubTypeId : result[0],
    order : result[1]
  }
  deferred.resolve(response);
 }
});
return deferred.promise;
}

Поэтому либо мне нужно знать количество существующих неиспользуемых соединений, либо установить timeOut в mysql для прекращения неиспользуемых соединений.
Спасибо

  • 1
    Вы можете использовать петлевые транзакции , чтобы завершить каждое соединение
Теги:
loopback
mysql-connector

1 ответ

0
Лучший ответ

В объекте dataSource вы можете найти свободные соединения, которые необходимо удалить из пула.

function removeOpenDatabaseConnections(dataSource){
 var freeConections = dataSource.connector.client._freeConnections;
 freeConections.forEach(function (freeConnection) {
  freeConnection._removeFromPool();
 }); 
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню