サーバーのすべてのコアを完全に活用するために、ノード JS サーバー クラスター環境をセットアップしました。いくつかのタスクを実行するために、毎日 08 時に実行される Cron ジョブがあります。ただし、クラスタリングのため、毎日 08 時に 4 回 (サーバーは 4 コア) 実行されます。Cron ジョブを 1 日 1 回だけ実行するには、どうすればこの問題を解決できますか?
if(cluster.isMaster) {
var numWorkers = require('os').cpus().length;
console.log('Master cluster setting up ' + numWorkers + ' workers...');
for(var i = 0; i < numWorkers; i++) {
cluster.fork();
}
cluster.on('exit', function(worker, code, signal) {
console.log('Worker ' + worker.process.pid + ' died with code: ' + code + ', and signal: ' + signal);
cluster.fork();
});
} else {
var CronJob = require('cron').CronJob;
new CronJob('01 30 08 * * 0-6', function() {
console.log('Running Schedular');
//Performing tasks
}, null, true, 'America/Los_Angeles');
var server = app.listen(port, function() {
console.log('Process ' + process.pid + ' is listening to all incoming requests');
});
}