0

我已经检查了节点时间表

*    *    *    *    *    *
┬    ┬    ┬    ┬    ┬    ┬
│    │    │    │    │    │
│    │    │    │    │    └ day of week (0 - 7) (0 or 7 is Sun)
│    │    │    │    └───── month (1 - 12)
│    │    │    └────────── day of month (1 - 31)
│    │    └─────────────── hour (0 - 23)
│    └──────────────────── minute (0 - 59)
└───────────────────────── second (0 - 59, OPTIONAL)

我每天早上 9 点都这样做,但它每天运行不止一次。

let tenSecCron = schedule.scheduleJob('0 0 9 * * *', async () => {
    this.runJobs();
});
4

2 回答 2

3

另一种方法是使用对象字面量语法,如下所示:

var j = schedule.scheduleJob({hour: 9, minute: 0} , async () => {
    this.runJobs();
});

除此之外,应该注意node-schedule的是内存调度程序,因此它不是基于cron. 因此,只有在 node.js 进程正在运行时,调度才会起作用。如果重新启动,您可能会遇到奇怪的影响,例如您的工作会立即安排好。

于 2019-03-29T09:15:54.093 回答
1

我相信正确的 cron 表达式是这样的:

0   0   9   ?   *   *   * 

如果您的调度程序不符合上述表达式,那么 later.js是一个用于获得准确结果的好库。

于 2019-03-29T05:25:49.880 回答