Планирование повторения ежедневных заданий с помощью Agenda.js и Node - PullRequest
0 голосов
/ 10 октября 2019

Я настраиваю планировщик заданий, используя Agenda.js и Node, поддерживаемые MongoDB. Пока все работает как положено. Однако мне неясно, как запланировать повторяющуюся работу - например, работу, которая должна выполняться каждый день в 9 утра.

«расписание» используется для одноразового планирования задания, но не повторяется:

agenda.schedule('today at 09:00am CST', 'first job');

«каждый» работает с интервалом, например «3 минуты», но не с«день в 9:00»

agenda.every('3 minutes', 'second job');

Поскольку методы настройки предположительно являются цепочечными, я также попытался это сделать:

agenda.processEvery('24 hours').schedule('day at 09:45am CST', 'second job');

... в первый раз эта задача была успешно выполнена 9:45:00 CST прибыл, но он не переустанавливал его для запуска на следующий день в одно и то же время.

Какой синтаксис я использовал бы для запуска работы КАЖДЫЙ день в 9:00? И, что еще лучше, как я могу запланировать запуск только на понедельник - пятницу?

1 Ответ

1 голос
/ 10 октября 2019

Ajenda принимает формат cron. Таким образом, вы можете сделать что-то вроде этого

Это повторное задание В 09:00 каждого дня недели с понедельника по пятницу

job.repeatEvery('0 9 * * 1-5', {
 skipImmediate: true
});

SkipImmediateНеобязательно. Вот CRON checker для указанной выше cron строки. Подробнее о repeatEvery

EDIT

Job возвращается, когда Agenda сделано

agenda.define('NAME', async job => {
 job.repeatEvery('0 9 * * 1-5', {
 skipImmediate: true
  });
 await job.save()
}

ЧитатьПодробнее о Создание рабочих мест

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