0

我正在使用Cron;用于在 NodeJs 中处理 cron 作业的nodejs 包。这是我运行 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']
4

1 回答 1

3

您不能将排除项添加到您的 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;
}
于 2017-01-16T17:12:17.257 回答