gpt4 book ai didi

node.js - Nodejs集群只将任务分配给一个worker(任意)

转载 作者:太空宇宙 更新时间:2023-11-04 01:56:07 24 4
gpt4 key购买 nike

我面临的问题是项目已经使用集群编程来分配任务。

if (cluster.isMaster) {
// Fork workers.
for (var i = 0; i < numCPUs; i++) {
cluster.fork();
}
cluster.on('exit', (worker, code, signal) => {
});
} else {
var server = http.createServer(app);
var usernames = {};
var showusernames = {};
var usersmessages = [];
require('../server/controllers/communication/chat.js').chatConfig(io, usernames);
/**
* Listen on provided port, on all network interfaces.
*/
server.listen(port);
server.on('error', onError);
server.on('listening', onListening);
}

我有一个基本想法,该代码用于在 cpu 之间分配任务,并在一个 cpu 发生故障时保持服务器正常运行。

问题是:一切都工作正常,直到我需要开始使用 Node 来安排 cron 作业(将发送电子邮件)。现在,所有工作人员同时运行 cron,并且根据服务器上有多少个 cpu 将电子邮件发送给工作人员。我通过将工作安排为:

 if(cluster.isWorker)
if(cluster.worker.id == 1){
cron.schedule('*/1 * * * *', function() {
//CRON JOB
})
}

这在本地系统中工作得很好,但在临时服务器中失败,可能是因为 CPU 与这个项目保持一致。

Is there any way to get only the first free worker and assign task to him.

现在我尝试了这个

var wokerArr = []
wokerArr.push(cluster.worker.id)
if(cluster.worker.id == wokerArr[0])
cron.schedule('*/1 * * * *', function() {
//CRON JOB
})

最佳答案

我使用crontab做到了这一点。制作一个单独的 cron 文件并在命令提示符下使用 crontab 来安排作业来安排作业。感谢您的支持。

关于node.js - Nodejs集群只将任务分配给一个worker(任意),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47935938/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com