Running out of Prozesse (Flooded mit Schlaf)

stimmen
1

Wir haben einen Server ausgeführt wird, die 2 Verbindungen zur Datenbank hat, werden sie sowohl einen Pool erstellt.

Beispiel:

var connection = mysql.createPool({
  host: config.mysql.host,
  user: config.mysql.user,
  password: config.mysql.pass,
  database: config.mysql.database
});

Allerdings gibt es viele Anfragen wir tun, sondern ein Pool kümmert Handhabung / Schließen aktiven Verbindungen mir gesagt wurde.

Nun Verbindungen häufen sich einfach auf und alte Verbindungen werden nicht betreut werden. Irgendwann werden wir aus verfügbaren Verbindungen laufen und der Server hängen gehen.

Abfragefunktion;

var query = function(query){
  return new Promise(function(resolve, reject){
    con.query(query, function(err, row){
      if(err){
        reject(err);
      }

      resolve(row);
    });
  });
}

Verwendung der Funktion;

db.query('SELECT * FROM `users` WHERE `isBanned` = 0').then(function(users){
  //active users
}).catch(function(err){
  ...
});

Alle Verbindungen , die gestapelt werden, sind in Befehl Schlaf

Edit: fusionierte die Verbindungen in einer Datenbank Pool

main.js

var pool = mysql.createPool({
    connectionLimit: 250,
    host: config.mysql.host,
    user: config.mysql.user,
    password: config.mysql.pass,
    database: config.mysql.database,
    charset: 'utf8_general_ci'
});
module.exports.pool = pool;

Database.js (ziemlich einfach für die Abfrage - Funktion)

var main = require('./server.js');

var query = function(query){
  return new Promise(function(resolve, reject){
    main.pool.query(query, function(err, row){
      if(err){
        reject(err);
      }

      resolve(row);
    });
  });
}

module.exports = {
  con: main.pool,
  query: query
};
Veröffentlicht am 03/12/2018 um 15:27
quelle vom benutzer
In anderen Sprachen...                            


1 antworten

Running out of Prozesse (Flooded mit Schlaf)

stimmen
1

Wir haben einen Server ausgeführt wird, die 2 Verbindungen zur Datenbank hat, werden sie sowohl einen Pool erstellt.

Beispiel:

var connection = mysql.createPool({
  host: config.mysql.host,
  user: config.mysql.user,
  password: config.mysql.pass,
  database: config.mysql.database
});

Allerdings gibt es viele Anfragen wir tun, sondern ein Pool kümmert Handhabung / Schließen aktiven Verbindungen mir gesagt wurde.

Nun Verbindungen häufen sich einfach auf und alte Verbindungen werden nicht betreut werden. Irgendwann werden wir aus verfügbaren Verbindungen laufen und der Server hängen gehen.

Abfragefunktion;

var query = function(query){
  return new Promise(function(resolve, reject){
    con.query(query, function(err, row){
      if(err){
        reject(err);
      }

      resolve(row);
    });
  });
}

Verwendung der Funktion;

db.query('SELECT * FROM `users` WHERE `isBanned` = 0').then(function(users){
  //active users
}).catch(function(err){
  ...
});

Alle Verbindungen , die gestapelt werden, sind in Befehl Schlaf

Edit: fusionierte die Verbindungen in einer Datenbank Pool

main.js

var pool = mysql.createPool({
    connectionLimit: 250,
    host: config.mysql.host,
    user: config.mysql.user,
    password: config.mysql.pass,
    database: config.mysql.database,
    charset: 'utf8_general_ci'
});
module.exports.pool = pool;

Database.js (ziemlich einfach für die Abfrage - Funktion)

var main = require('./server.js');

var query = function(query){
  return new Promise(function(resolve, reject){
    main.pool.query(query, function(err, row){
      if(err){
        reject(err);
      }

      resolve(row);
    });
  });
}

module.exports = {
  con: main.pool,
  query: query
};
Beantwortet am 03/12/2018 um 15:27
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more