节点在并行执行时创建新的 mysql 连接,并且不会结束新连接

Node creates new mysql connections on parallel executions, and doesn't end the new connections

我正在尝试使用 loopback - node - mysql 编写一个程序,其中进行了并行 DB(MySQL) 调用。节点和 MySQL 之间已经存在持久连接。进行并行调用时,会创建与 MySQL 数据库的附加连接来满足请求。但是在并行调用和函数完成后,与 MySQL 建立的新连接仍然存在。因此,从长远来看 运行 与 MySQL 数据库建立了很多连接,这些连接在使用后并未关闭。
这是我的代码

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

所以要么我需要知道现有未使用的连接数,要么在 mysql 中设置超时以终止未使用的连接。
谢谢

在数据源对象中,您可以找到需要从池中删除的空闲连接。

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