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

cron job in node js running multiple times

我正在 运行使用节点 js 的模块 node-cron 执行 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 一次启动 运行s 多次,因为相同的数据被插入到我的数据库中。我只需要 运行 这份工作只有一次。我该怎么办

您可以从 onTick:

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

就我而言,我更改了我的代码:

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();

谢谢