Как запланировать выполнение задачи каждый день в 9 часов утра в узле? - PullRequest
0 голосов
/ 29 марта 2019

Я проверил на расписание узла

*    *    *    *    *    *
┬    ┬    ┬    ┬    ┬    ┬
│    │    │    │    │    │
│    │    │    │    │    └ 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:00, но он запускается более одного раза в день.

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

Ответы [ 2 ]

2 голосов
/ 29 марта 2019

Другой подход заключается в использовании буквального синтаксиса объекта следующим образом:

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

Кроме того, следует отметить, что node-schedule является планировщиком в памяти и поэтому не основан на cron. Как следствие, планирование будет работать только до тех пор, пока выполняется процесс node.js. При перезапуске вы можете столкнуться со странными эффектами, например, ваши рабочие места будут назначены сразу.

1 голос
/ 29 марта 2019

Я считаю, что правильное выражение cron таково:

0   0   9   ?   *   *   * 

Если ваш планировщик игнорирует вышеприведенное выражение, Later.js - хорошая библиотека для точных результатов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...