异常日期Nodejs Cron中的数组处理

时间:2016-09-16 06:35:29

标签: node.js cron node-cron

我正在使用Cron;一个nodejs package用于NodeJs中的cron作业处理。这是我如何运行一个cron工作:

var job = new CronJob({
  cronTime: '00 30 11 * * 1-5',
  onTick: function() {
    /*
     * Runs every weekday (Monday through Friday)
     * at 11:30:00 AM. It does not run on Saturday
     * or Sunday.
     */
  }
});
job.start();

它运行完美但是有没有标准方式来处理异常日期数组处理?例如,这是我的国家假日日期,我不想在这些日子里完成我的cron工作:

['28-01-2017', '1-05-2017', '14-08-2016', '15-09-2016', '16-09-2016']

1 个答案:

答案 0 :(得分:1)

您无法在cron作业中添加排除项。最好不要在代码中添加那些日子不运行的逻辑。

var job = new CronJob({
  cronTime: '00 30 11 * * 1-5',
  onTick: function() {
    var exclude = ['28-01-2017', '1-05-2017', '14-08-2016', '15-09-2016', '16-09-2016']
    if (exclude.indexOf(convertDate()) > -1) {
        console.log('dont run');
    } else {
        console.log('run');
    }
  }
});
job.start();

function convertDate() {
    var d = new Date();
    return [pad(d.getDate()), pad(d.getMonth()+1), d.getFullYear()].join('-');
}

function pad(s) {
    return (s < 10) ? '0' + s : s;
}