Планирование задач в NodeJS с помощью cron job
Cron утилита командной строки, также известный как cron job, является планировщик заданий на Unix-подобной операционной системы. Пользователи, которые настраивают и обслуживают программные среды, используют cron для планирования заданий (команд или сценариев оболочки), которые должны выполняться периодически в фиксированное время, даты или интервалы. Обычно он автоматизирует обслуживание или администрирование системы, хотя его универсальный характер делает его полезным для таких вещей, как загрузка файлов из Интернета и загрузка электронной почты через регулярные промежутки времени.
Задание cron определяется с помощью ряда звездочек (*****), которые обозначают различное время, указанное ниже.
# ┌───────────── minute (0 - 59)
# │ ┌───────────── hour (0 - 23)
# │ │ ┌───────────── day of the month (1 - 31)
# │ │ │ ┌───────────── month (1 - 12)
# │ │ │ │ ┌───────────── day of the week (0 - 6) (Sunday to Saturday)
# │ │ │ │ │
# │ │ │ │ │
# │ │ │ │ │
# * * * * *
Это очень полезно, когда вы выполняете повторяющиеся задачи, которые можно выполнять программно, например, очищать журналы, регулярно загружать файлы из Интернета или регулярно отправлять SMS своему супругу с помощью Love SMS API **** 😓
Примеры cron-job в системе GNU
Следующая команда запускает файл сценария ./clean_file.sh
регулярно в 1 минуту после полуночи каждый день.
1 0 * * * ./clean_file.sh
Еще примеры обозначения заданий cron
45 23 * * 6
- работает по субботам в 23:450 0 25 12 *
- работает в полночь 25 декабря (Рождество)0 0 * * *
- работает ежедневно в полночь* * * * *
- работает каждую минуту* 10,14 * * *
- работает ежедневно в 10:00 и 14:000 0 14 2 *
- работает каждые 14 дней февраля и в полночь.
Чтобы использовать нотацию cron для планирования задач в нашем приложении, мы установим пакет node-cron, выполнив приведенную ниже команду в нашем терминале.
npm install node-cron
Bree - еще один пакет с поддержкой рабочих потоков и синтаксиса cron. Но в этой статье мы остановимся на node-cron. Итак, давайте запустим простой пример:
const cron = require('node-cron');
cron.schedule('* * * * *', () => {
console.log('running a task every minute');
});
Таким образом, вы можете выполнять практически любую функцию в разные запланированные даты, передав функцию в качестве второго аргумента.
Работает в фоновом режиме
В Linux вы можете запускать программу в фоновом режиме, используя знак амперсанда &
после команды:
node app .js &
И используйте команду jobs
, чтобы увидеть запущенные процессы в фоновом режиме.
Аналогичная команда в Powershell известна как Start-Job.
Спасибо, что прочитали, надеюсь, вам понравилась эта статья 🤗