Я столкнулся с этим вопросом, когда писал веб-приложение, которое автоматически отправляет заказ на кофе в заданное время. После небольшого исследования я решил реализовать эту функциональность с помощью Cron. Для тех из вас, кому интересно, что такое Cron - вот краткое определение из Интернета:

«cron - это утилита Linux, которая планирует автоматический запуск команды или сценария на вашем сервере в указанное время и дату. Задание cron - это само запланированное задание. Задания Cron могут быть очень полезны для автоматизации повторяющихся задач ».

Есть много способов реализовать Cron Jobs. Большинство ресурсов, которые я читаю в Интернете, содержат инструкции по настройке Cron Job на вашем компьютере (Linux / Windows). Однако для моей цели мне понадобится Cron для работы с остальной частью моего приложения Javascript. После небольшого исследования я решил установить Cron для своего проекта. С помощью Cron вы можете запланировать запуск функции обратного вызова либо в определенное время, либо с заданным интервалом времени (с точностью до каждой секунды!).

Для начала просто установите Cron:

npm i cron

Ниже приведен пример настройки типичного задания cron. В частности, это задание cron будет консольным журналом «Hello World» каждую секунду.

const CronJob = require('cron').CronJob 
const job = new CronJob('* * * * * *', function() {
  console.log('Hello World');
});
job.start()

Функция CronJob принимает два обязательных параметра. Первый параметр «* * * * * *» - это время, когда нужно завершить работу в синтаксисе cron. Синтаксис Cron сначала может показаться немного устрашающим, но по сути он выглядит примерно так:

' *   Seconds: 0-59
  *   Minutes: 0-59
  *   Hours: 0-23
  *   Day of the month: 1-31
  *   Months: 0-11 (Jan - Dec)
  * ' Day of the Week: 0-6 (Sun-Sat)

Например, если вы хотите запланировать выполнение задания каждые 10 минут, вы должны написать следующее:

' * 10 * * * * '

Если вы хотите запланировать задание Cron на 7:15 утра, вот что вы должны написать:

' 0 15 7 * * * '

Точно так же вы можете написать следующее, если хотите, чтобы задание выполнялось с понедельника по пятницу в 14:30.

' 0 30 14 * * 1-5 '

После установки времени вы должны включить функцию обратного вызова для выполнения в качестве второго параметра, как указано в нашем примере.

Вы готовы к самой базовой работе Cron! В дополнение к двум обязательным параметрам есть семь необязательных параметров, если ваша работа немного сложнее. Вы можете добавить еще одну функцию, которая будет запускаться при остановке вашей работы, или даже установить часовой пояс для работы. Подробнее о необязательных параметрах вы можете прочитать в разделе API здесь.