Использование расписания узла для запуска в * определенное * время - PullRequest
0 голосов
/ 30 марта 2019

Использование узла-планировщика для настройки повторяющегося задания.Мне нужно 7 дней в неделю несколько определенных раз - например, 5:45, 06:30, 11:15 и т. Д.

Я установил правило:

let rule = new schedule.RecurrenceRule();
rule.dayOfWeek = [1,2,3,4,5,6,7]

Теперь, если я добавлю часы и минуты как массивы, похоже, что они будут проходить через все часы за все минуты - например,

rule.hour = [5,6,11];
rule.minute = [45,30,15];

Итак, этот будет работать в 5:45 утра, 6: 45:00, 11:45, 5:30, 6:30, 11:30, ....

Как я могу использовать правила, чтобы установить точное время?Опять же, в моем примере 5:45, 06:30, 11:15 * 01015 *

Ответы [ 2 ]

0 голосов
/ 30 марта 2019

Другой подход заключается в использовании Object Literal Syntax . Если день недели не указан, как показано ниже, время назначается на каждый день.

let times = [
  {hour: 5, minute: 45}, 
  {hour: 6, minute: 30}, 
  {hour: 11, minute: 15}
];
times.forEach(function(time) {
  var j = schedule.scheduleJob(time, function() {
    // your job
    console.log('Time for tea!');
  });
})

0 голосов
/ 30 марта 2019

Модуль node-schedule поддерживает синтаксис cron.Но так как расписание, которое вы хотите, не может быть выражено в одном правиле с помощью cron, вы также не можете определить это в одном правиле в расписании узлов.Использование определений dayOfWeek, hour и minute для правила позволяет запланировать задание на каждую комбинацию day, hour и minute, как правило cron.

Естьпосмотрите в разделе планирование правил повторения в документации, как определить правило для определенного времени каждый день, а также создать и запланировать отдельное правило для каждого необходимого вам времени

let hour = [5, 6, 11];
let minute = [45, 30, 15];

for (let i = 0; i < hour.length; i++) {
  let rule = new schedule.RecurrenceRule();
  rule.dayOfWeek = [0, 1, 2, 3, 4, 5, 6];
  rule.hour = hour[i];
  rule.minute = minute[i];

  let j = schedule.scheduleJob(rule, function(){
    //your job
  });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...