Maison  >  Article  >  interface Web  >  Node.js implémente la méthode du pool de connexions MySQL en utilisant des transactions pour recycler automatiquement les connexions

Node.js implémente la méthode du pool de connexions MySQL en utilisant des transactions pour recycler automatiquement les connexions

小云云
小云云original
2018-02-05 09:46:561723parcourir

Cet article présente principalement la méthode de Node.js pour implémenter le pool de connexions mysql à l'aide de transactions pour recycler automatiquement les connexions. Il analyse les techniques associées de node.js exploitant le pool de connexions mysql pour implémenter des opérations de recyclage de connexions basées sur les transactions sous la forme de des exemples. Les amis qui en ont besoin peuvent s'y référer. Ensuite, j'espère que cela pourra aider tout le monde.

L'exemple de cet article décrit comment Node.js implémente le pool de connexions MySQL pour recycler automatiquement les connexions à l'aide de transactions. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :


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

Recommandations associées :

Explication détaillée du recyclage automatique mécanisme de Session en php

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn