我有一个收集不同数据的页面,在本例中是名称、身高、体重等。我使用循环遍历行,然后将它们一行一行地插入到我的sql数据库中。每页有1000行,每页插入每行需要一段时间。我有兴趣尝试使用工人来更有效地分配任务,但我不确定我是否完全理解集群和分叉。有没有办法给4个工人每人大约250个插页?在我当前的设置中,显然所有的工作人员都执行相同的行,这将导致4000个插入,而不是1000个唯一的插入。
在我的圈子里
//Insert And Log
var sql = "INSERT INTO split.test (person_id,name,height,weight) VALUES (?,?,?,?)";
con.query(sql, [input_id,input_name,input_height_input_weight], function (err, rows, result) {
if (err) throw err;
console.log(input_id+" inserted");
});
>> 1 Howard Jones 72 180
>> 2 John Smith 66 140
>> etc
我现在得到的
if (cluster.isMaster) {
for (var p = 0; p < numCPUs; p++) {
cluster.fork();
//Insert And Log
var sql = "INSERT INTO split.test (person_id,name,height,weight) VALUES (?,?,?,?)";
con.query(sql, [input_id,input_name,input_height_input_weight], function (err, rows, result) {
if (err) throw err;
console.log(input_id+" inserted");
});
}
} else {
http.createServer(function(req, res) {
res.writeHead(200);
res.end('process ' + process.pid + ' says hello!');
}).listen(8000);
}
>> 1 Howard Jones 72 180 [Worker 1]
>> 1 Howard Jones 72 180 [Worker 2]
>> 1 Howard Jones 72 180 [Worker 3]
>> 1 Howard Jones 72 180 [Worker 4]
>> 2 John Smith 66 140 [Worker 1]
>> 2 John Smith 66 140 [Worker 2]
>> 2 John Smith 66 140 [Worker 3]
>> 2 John Smith 66 140 [Worker 4]
>> etc
我想要什么
>> 1 Howard Jones 72 180 [Worker 1]
>> 2 John Smith 66 140 [Worker 2]
>> 3 Chris Christopher 69 220 [Worker 3]
>> 4 Matt Matthew 68 150 [Worker 4]
>> etc
暂无答案!
目前还没有任何答案,快来回答吧!