是否可以在lambda函数中使用集群模块?我试过这个:AWS上的NodeJS集群Lambda
'use strict';
var cluster = require('cluster');
var http = require('http');
var os = require('os');
var numCPUs = os.cpus().length;
console.log('Number of Cores : ', numCPUs);
exports.test = (event, context, callback) => {
if (cluster.isMaster) {
for (var i = 0; i < numCPUs; ++i) {
cluster.fork();
}
} else {
console.log('child process ');
}
}
核心数总是2,但我从来没有看到子进程日志。
更新评论例如:
我试图实现信息的模式,但我仍然没有收到孩子发来的消息。 for循环正确地循环遍历集群工作人员,但从未找到消息。
'use strict';
var cluster = require('cluster');
var http = require('http');
var os = require('os');
var numCPUs = os.cpus().length;
console.log('Number of Cores : ', numCPUs);
exports.test = (event, context, callback) => {
if (cluster.isMaster) {
for (var i = 0; i < numCPUs; ++i) {
cluster.fork();
}
for (const id in cluster.workers) {
cluster.workers[id].on('message', messageHandler);
}
} else {
process.send('running');
}
};
function messageHandler(msg) {
console.log(msg);
}
您是否看到过在此方面的性能优势?你为什么要实现它? – kbariotis
我正在测试性能。最后,我用一个lambda代替了一个集群。如果你有兴趣,我可以从性能测试中挖掘结果。 –
绝对!谢谢 – kbariotis