【发布时间】:2018-05-30 01:32:47
【问题描述】:
请耐心等待,因为我对集群完全陌生,文档并没有点击我。
if (cluster.isMaster)
{
for (let i = 0; i < numCPUs; i++)
{
cluster.fork();
}
for (const file in files)
{
cluster.workers.send(file); //***
}
}
else if (cluster.isWorker)
{
process.on("message", (msg) =>
{
//...Process data here...
});
}
*** 是我想要的那种东西。像 cluster.workers.send(...) 这样的东西会向工作人员发送消息,不忙的人会收到消息。如果所有工作人员都忙,则消息将等待发送,直到有空闲工作人员。
【问题讨论】:
-
节点集群将创建您的应用程序的多个实例。如果您只想让一个集群执行一项任务,您可以使用 redis 和 redlock npm 模块。使用此模块,您可以只允许一个集群在多个集群中执行一项任务。
-
我会检查 redis 和 redlock,但是有没有一种方法可以在不添加额外依赖项的情况下实现这一点?如果可能的话,最好不要太多样板
标签: javascript node.js sockets pm2