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

Exception Dates Array handling in Nodejs Cron

我正在使用 Cron; a 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']

您不能向您的 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;
}