我有一个收集不同数据的页面,在这种情况下名称,高度,重量等。我使用循环遍历行,然后我将它们一次插入我的SQL数据库一行。每个页面有1,000行,每页插入每行需要一段时间。我有兴趣尝试使用工作人员更有效地分割任务,但我不确定我是否完全了解集群和分叉。有没有办法可以给4个工人提供250个插件?在我目前的设置中,显然所有工人都做同样的线路,这导致4,000个插入而不是1,000个独特的插入。
在我的圈内
//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