Как создать задание 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. Я думаю, это поможет вам реализовать свой график в нужное время и освободит вас для более важной и полноценной работы.