【发布时间】:2015-08-18 10:14:48
【问题描述】:
我想要同步结果。
我只想通过将 5000 除以一来输入数据。
但是,由于异步上市,它正在苦苦挣扎。
我想看看java等同步语言的结果。
我想要这些结果:
100-elements
commit
100-elements
commit
100-elements
commit
100-elements
commit
但是,代码目前得到了这些结果:
100-elements
100-elements
100-elements
100-elements
100-elements
.
.
.
.
100-elements
commit
commit
commit
commit
commit
commit
commit
.
.
.
.
commit
我怎样才能得到这些结果?请帮我。谢谢你。
mysql.getConnection(function(err, connection){
if(err){ connection.release(); return; }
var array = [];
var count = 300000;
var length = count;
for(var i=0; i<count; i++){
(function(currentI, master){
process.nextTick(function(){
array.push([currentI, master]);
if(currentI % 5000 === 0){
console.log('100-elements');
array = [];
connection.beginTransaction(function(err){
if(err){
throw err;
}
var query = "insert into users(username, password) values ?";
connection.query(query, [array], function (err, rows) {
if (!err) {
//commit start
connection.commit(function(){
if (err) {
console.error(err);
connection.rollback(function () {
console.error('rollback error');
throw err;
});
} else {
console.log("Commit");
}/ / if err
}); //commit end
} else {
console.log(err);
connection.rollback(function(){
throw err;
});
} // if
}) // cnnection query
}); // beginTransaction
} //if
});
}(i, 'master'));
} //for
}) // getConnection
【问题讨论】:
标签: mysql node.js asynchronous web commit