Как создать задание Cron с помощью NodeJS

При создании веб-приложений и API-интерфейсов с использованием Node.js мы иногда сталкиваемся с задачами, которые необходимо многократно выполнять, такими как уведомления по электронной почте, загрузка файлов, резервное копирование базы данных и т. Д. В зависимости от задачи это может происходить каждый день в определенное время, месяц или даже год.

Прежде всего, мы собираемся запланировать задание в Node.js с помощью node-cron. После этого мы надеемся сравнить node-cron с node-scheduler, который является самым популярным пакетом. В данный момент.

Введение в Node-cron

Node-cron - это пакет npm, написанный для node на чистом JavaScript, и он основан на синтаксисе GNU crontab. Поэтому наш первый шаг основан на изучении синтаксиса node-cron и cron-синтаксисом.

Синтаксисы Node-cron

Действия cron управляются файлом crontab (таблица cron), файлом конфигурации, который содержит инструкции для демона cron. Демон Cron - это исполняемый файл для управления системой, который запускается в памяти и может использоваться для планирования задач. Ниже показаны синтаксисы crontab.

Использование Node-cron на практике

Установите node-cron с помощью npm.

Синтаксис для планирования заданий:

Вот как варианты:

  • запланировано: логическое значение устанавливается для запланированной задачи или нет. Значение по умолчанию - true.
  • часовой пояс: часовой пояс, используемый для планирования заданий. По умолчанию используется часовой пояс, определенный сервером.

Следующее задание запланировано запускать каждые 2 минуты часа.

В приведенном выше примере звездочки (*) в первой, третьей, четвертой, пятой и шестой позициях спецификации времени похожи на подстановочные знаки в файле. Это подразумевает «каждую секунду, каждый час, каждый день, каждый месяц и день недели» индивидуально.

Другой пример, показанный ниже, показывает это задание cron, которое выполняется каждый день в 5:30 утра,

Затем перейдем к рассмотрению некоторых особых случаев, например,

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

Здесь вы можете видеть, что мы использовали специальный символ (/), отличный от обычных звездочек. Точно так же в планирование заданий cron было введено несколько специальных символов, и мы можем представить их ниже.

  • Запятая: запятыми можно разделять несколько значений. Например, каждые 2 и 5 минут мы можем представить это как 2,5.
  • Дефис: дефис (-) используется для обозначения диапазона значений, например с понедельника по пятницу.
  • Косая черта. Косая черта используется для указания значений шага, например, для каждых 5 секунд, мы можем представить это как * / 5.

Ниже приведен еще один пример, в котором можно запланировать выполнение задания каждый день с понедельника по пятницу (только в рабочие дни) в 16:00.

Другой пример показывает, что задание выполняется каждые 15 минут с 5 до 7 часов утра.

Использование методов при планировании заданий NodeJS.

Запуск расписания:

Если при инициализации вы установите для параметра cron значение False, запланированное задание не будет выполняться даже в запланированное время. Поэтому, если вам нужно запустить это задание, вам нужно вызвать метод start, указанный ниже.

Остановка расписания:

Если вам нужно остановить какое-либо расписание, которое выполняется, вы должны использовать метод stop. Расписание не будет выполнено даже после перезапуска.

Удаление расписания:

Вы можете использовать метод destroy, чтобы навсегда уничтожить расписание.

Что такое расписание узлов?

Node-schedule - самая популярная гибкая библиотека планирования задач, подобная cron, для Node.js. Функции node-schedule и node-cron очень похожи.

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

Кроме того, node-schedule поддерживает системы Windows, в отличие от cron, который этого не делает. Наконец, вы можете использовать npm, чтобы получить подробные сведения о модуле node-schedule.

Заключение

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

Учить больше