Heim  >  Artikel  >  Web-Frontend  >  So implementieren Sie das automatische Recycling von Verbindungen für MySQL-Transaktionen in Node.js

So implementieren Sie das automatische Recycling von Verbindungen für MySQL-Transaktionen in Node.js

亚连
亚连Original
2018-06-08 10:43:561182Durchsuche

In diesem Artikel wird hauptsächlich die Methode von Node.js zum Implementieren des MySQL-Verbindungspools mithilfe von Transaktionen zum automatischen Recycling von Verbindungen vorgestellt Beispiele. Freunde, die es benötigen, können als Referenz dienen:

Dieser Artikel beschreibt, wie Node.js den MySQL-Verbindungspool implementiert, um Verbindungen mithilfe von Transaktionen automatisch wiederzuverwenden. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:

var mysql = require('mysql'),
  Connection = require('mysql/lib/Connection.js');
var pool = mysql.createPool({
  host: '127.0.0.1',
  database: 'myDB',
  port: 3306,
  user: 'root',
  password: 'root',
  debug: false,
  connectionLimit: 3
});
var execPool = function() {
  pool.getConnection(function(err, conn) {
    transAutoRelease(conn);
    conn.beginTransaction(function(err) {
      if (err) throw err;
      conn.query("INSERT INTO test(id,name,date,test) values(1,'123',now(),1)",
        function(err, ret) {
          if (err) {
            console.error(err);
            conn.rollback(function() {});
          } else {
            console.log(ret);
            conn.query('UPDATE test set id=12321312 where id=1', function(err, ret) {
              if (err) {
                console.error(err);
                conn.rollback(function() {
                });
              } else {
                conn.commit(function() {
                  console.log('success' + JSON.stringify(ret));
                });
              }
            });
          }
        });
    });
  });
}
function after(fn, cb) { return function() {
    fn.apply(this, arguments);
    cb();
  }
}
function transAutoRelease(conn) {
  if (conn.commit == Connection.prototype.commit)
    conn.commit = after(conn.commit, release);
  if (conn.rollback == Connection.prototype.rollback)
    conn.rollback = after(conn.rollback, release);
  function release() {
    if (conn) {
      conn.release();
    }
  }
}
var intervalStartProcess = function() {
  setInterval(function() {
    execPool();
  }, 1000);
}
for (var i = 5 - 1; i >= 0; i--) {
  intervalStartProcess();
}

Das Obige habe ich für alle zusammengestellt. Ich hoffe, es wird in Zukunft für alle hilfreich sein.

Verwandte Artikel:

Warum wird Node.js zur Webanwendungsentwicklung?

Wie erhalte ich den Datei-Upload-Fortschritt in Node.js?

So implementieren Sie die längste gemeinsame Teilsequenz in Javascript

Das obige ist der detaillierte Inhalt vonSo implementieren Sie das automatische Recycling von Verbindungen für MySQL-Transaktionen in Node.js. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn