项目中遇到事物,大家整的脑袋都大了,node.js貌似真不好玩,也许是自己还不熟悉,贴两段代码供大家参考,也自己做个记录;
参考这位哥们儿的记录 http://blog.csdn.net/starnight_cbj/article/details/4492555
命令: show processlist;
如果是root帐号,你能看到所有用户的当前连接。如果是其它普通帐号,只能看到自己占用的连接。
show processlist;只列出前100条,如果想全列出请使用show
full processlist;
mysql> show processlist;
第一段是借用async.series中的同步处理;
第二段是用的连接池
/* * GET home page. */ var queues = require('mysql-queues'); var async = require('async'); var db = require('./DBManager'); var appPool = require('./app-pooling'); exports.index = function(req, res){ var conn = db.db_conn(); conn.connect(); queues(conn); var trans = conn.startTransaction(); async.series([ function(callback1){ console.log('111111111111111111111111111'); var sql = "INSERT INTO user(username,password) VALUES ('111', '333')"; trans.query(sql,function(err,info){ console.log(err+'aaaaaaaaaaaaaaaaaaaa'); callback1(err,info); }); }, function(callback2){ console.log('222222222222222222222222'); var sql = "INSERT INTO user(username,password) VALUES ('111', '333111')"; trans.query(sql,function(err,info){ console.log(err+'bbbbbbbbbbbbbbbbbbbbbb'); callback2(err,info); }); }, function(callback3){ console.log('33333333333333333333'); var sql = "INSERT INTO user(username,password) VALUES ('111111', '333111')"; trans.query(sql,function(err,info){ console.log(err+'ccccccccccccccccc'); callback3(err,info); }); } ],function(err,results){ if (err) { console.log("rollback"); // 出错的场合 回滚 trans.rollback(); } else { // 没有错误的场合 提交事务 console.log('55555555555555555555555'); // trans.commit(); trans.commit(function(err, info) { console.log(info); conn.end(); }); // conn.end(); // conn.destroy(); } console.log('final'); // conn.release(); // conn.end(); }); // 执行这个事务 trans.execute(); console.log('4444444444444444'); res.send('完成'); }; exports.indexOld = function(req, res){ console.log('删掉的丰盛的'); appPool.pool.getConnection(function (err, conn) { var trans = conn; async.series([ function(callback1){ console.log('111111111111111111111111111'); var sql = "INSERT INTO user(username,password) VALUES ('111', '333')"; trans.query(sql,function(err,info){ console.log(err+'aaaaaaaaaaaaaaaaaaaa'); callback1(err,info); }); }, function(callback2){ console.log('222222222222222222222222'); var sql = "INSERT INTO user(username,password) VALUES ('111', '333111')"; trans.query(sql,function(err,info){ console.log(err+'bbbbbbbbbbbbbbbbbbbbbb'); callback2(err,info); }); }, function(callback3){ console.log('33333333333333333333'); var sql = "INSERT INTO user(username,password) VALUES ('111111', '333111')"; trans.query(sql,function(err,info){ console.log(err+'ccccccccccccccccc'); callback3(err,info); }); } ],function(err,results){ if (err) { console.log("rollback"); // 出错的场合 回滚 trans.rollback(); } else { // 没有错误的场合 提交事务 console.log('55555555555555555555555'); trans.commit(); } console.log('final'); }); // 执行这个事务 console.log('4444444444444444'); res.send('完成'); }); }