议程npm只运行4次

时间:2017-05-29 09:33:22

标签: node.js npm agenda

我需要一个在特定时间间隔内运行几个作业的作业调度程序。所以,我使用议程模块来完成这项任务。发生的情况是,当服务器重新启动时,作业将被执行,并且这会以固定间隔为基础发生4次,并且在该议程停止工作后不会抛出任何错误。我试图在服务器停止时取消作业并停止议程。因此,每次重新启动服务器时,agendaJobs都会创建新的集合。但是,我仍然遇到同样的问题。因为我运行了多个节点实例,所以我需要在该时间间隔内仅运行一次作业。因此,我使用了议程。是否有任何不同的调度程序可以做同样的事情或我做错了什么?

var agenda = new Agenda({db: {address: mongoConnectionString}});
var startCron = function(server, callback){

agenda.define('job1', function(job, done) {
  job1.execute();
});

agenda.define('job2', function(job, done) {
  job2.execute();
});

agenda.define('job3', function(job, done) {
  job3.execute();
});

agenda.on('ready', function() {
    agenda.every('10 minutes', ['job1', 'job2',
        'job3']);
  agenda.start();
  console.log("Cron job setup completed.");
  callback(null, server);
});
}

//这是我的杀戮过程

var killProcess = function() {

    try {
        mongoose.disconnect();
        console.log(arguments);
        console.log("Connection got closed.");

    } catch (e) {
        console.log(e);
    }
    agenda.cancel({}, function(err, numRem){
        console.log("Cancelling Agenda Jobs", err, numRem);
        agenda.stop(function() {
            console.log("Stopping Agenda")
            setTimeout(function(){
                process.exit(1);
            }, 2000);
          });
    });
};

0 个答案:

没有答案