>  기사  >  웹 프론트엔드  >  mysql 연결 풀에서 트랜잭션 자동 재활용을 사용하는 방법(코드 포함)

mysql 연결 풀에서 트랜잭션 자동 재활용을 사용하는 방법(코드 포함)

php中世界最好的语言
php中世界最好的语言원래의
2018-04-12 17:53:452069검색

이번에는 mysql 연결 풀(코드 포함)에서 자동 트랜잭션 재활용을 사용하는 방법을 보여드리겠습니다. 자동 트랜잭션 재활용(코드 포함)에서 mysql 연결 풀을 사용할 때 주의 사항

은 무엇입니까? 보세요.

이 문서의 예에서는 Node.js

가 mysql 연결 풀을 구현하여 트랜잭션을 사용하여 연결을 자동으로 재활용하는 방법을 설명합니다. 참고할 수 있도록 모든 사람과 공유하세요. 자세한 내용은 다음과 같습니다.

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();
}
이 기사의 사례를 읽은 후 방법을 마스터했다고 생각합니다. 더 흥미로운 정보를 보려면 PHP 중국어 웹사이트의 다른 관련 기사를 주목하세요!

추천 자료:

맞춤형 ajax 도메인 간 구성 요소 캡슐화

웹 애플리케이션 개발에서 Node.js

express+multer를 사용하여 노드 이미지 업로드의 특정 단계를 구현하는 이유

🎜

위 내용은 mysql 연결 풀에서 트랜잭션 자동 재활용을 사용하는 방법(코드 포함)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.