项目中遇到事物,大家整的脑袋都大了,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('完成');
});
}