使用Node.js集群工作人员执行特定任务

使用节点I中的集群模块可以允许在多个核心上运行http服务器,从而提高并发性,这非常棒。 但是,如果我的应用程序包含其他任务,我不想多次运行,如计划的事件。 我怎样才能做到这一点?

我使用集群模块的基本代码是这样的…

var cluster = require('cluster'); if(cluster.isMaster){ var numWorkers = require('os').cpus().length; for(var i = 0; i < numWorkers; i++) { cluster.fork(); } //restart dead workers cluster.on('exit', function(worker, code, signal) { console.log('Worker ' + worker.process.pid + ' died with code: ' + code + ', and signal: ' + signal); console.log('Starting a new worker'); cluster.fork(); }); }else{ var http = require('http'); var server = http.createServer(function(req, res) { res.write(process.pid.toString()); res.end(); }); server.listen(5000); console.log("Server is listening"); } 

现在,如果我有一个任务,我想每小时运行一次。

 setInterval(function(){ doSomething(); }, 60*60*1000); 

我会把它放在哪里? 我已经读过,主人应该只pipe理工人,以避免主人抛出错误和崩溃的任何风险。 也许有可能将个别事件提供给特定的工作人员?