节点js中的cron作业多次运行

时间:2017-09-14 06:12:36

标签: node.js node-cron

我正在使用模块node-cron为节点js运行一个cron作业。我的代码如下。

var Job = new CronJob({

cronTime: '* * 01 * * *', //Execute at 1 am every day

onTick  : function() {

    co(function*() {

        yield insertToDatabase(); //this is the function that does insert operation

    }).catch(ex => {

        console.log('error')

    });

},
start   : false,

timeZone: 'Asia/Kolkata'
});

我只需要执行一次,但是这个cronjob一旦开始运行多次,因为相同的数据被插入到我的数据库中。我只需要一次这个工作。我该怎么办。

2 个答案:

答案 0 :(得分:0)

您可以从Job.stop()致电onTick

onTick : function() {
  Job.stop();
  co(function*() {
    yield insertToDatabase();
  }).catch(ex => {
    console.log('error');
  });
}

答案 1 :(得分:0)

就我而言,我从此更改了代码:

var job = new CronJob('*/59 * * * *', onTick, onComplete, true, 'Asia/Kolkata'); // onTick and onComplete is a function, which i'm not showing here
job.start();

对此:

var job = new CronJob('*/59 * * * *', onTick, onComplete, false, 'Asia/Kolkata'); // onTick and onComplete is a function, which i'm not showing here
job.start();

谢谢