Удивительный модуль сообщества

Узел Крон

НПМ НПМ Статус покрытия Код Климат Статус сборки Статус зависимости Состояние devDependency

Модуль node-cron представляет собой крошечный планировщик задач на чистом JavaScript для node.js на основе GNU crontab . Этот модуль позволяет планировать задачи в node.js с использованием полного синтаксиса crontab.

NPM

Начало работы

Установите node-cron, используя npm:

1
$ npm install --save node-cron

Импортируйте node-cron и запланируйте задачу:

1 2 3 4 5
var cron = require('node-cron'); cron.schedule('* * * * *', function(){ console.log('running a task every minute'); });

Cron Синтаксис

Это быстрая ссылка на синтаксис cron, а также показывает опции, поддерживаемые node-cron.

Allowed fields

1 2 3 4 5 6 7 8 9
# ┌────────────── second (optional) # │ ┌──────────── minute # │ │ ┌────────── hour # │ │ │ ┌──────── day of month # │ │ │ │ ┌────── month # │ │ │ │ │ ┌──── day of week # │ │ │ │ │ │ # │ │ │ │ │ │ # * * * * * *

Allowed values

поле значение
второй 0-59
минут 0-59
час 0-23
день месяца 1-31
месяц 1-12 (или имена)
день недели 0-7 (или имена, 0 или 7 - воскресенье)

Использование кратных значений

Вы можете использовать кратные значения, разделенные запятой:

1 2 3 4 5
var cron = require('node-cron'); cron.schedule('1,2,4,5 * * * *', function(){ console.log('running every minute 1, 2, 4 and 5'); });

Использование диапазонов

Вы также можете определить диапазон значений:

1 2 3 4 5
var cron = require('node-cron'); cron.schedule('1-5 * * * *', function(){ console.log('running every minute to 1 from 5'); });

Использование значений шага

Значения шага могут использоваться в сочетании с диапазонами, после диапазона с '/' и числом. Например: 1-10/2 что совпадает с 2,4,6,8,10 . Шаги также разрешены после звездочки , так что если вы хотите сказать «каждые две минуты», просто используйте */2 .

1 2 3 4 5
var cron = require('node-cron'); cron.schedule('*/2 * * * *', function(){ console.log('running a task every two minutes'); });

Использование имен

Для месяца и дня недели вы также можете использовать имена или короткие имена. Например:

1 2 3 4 5
var cron = require('node-cron'); cron.schedule('* * * January,September Sunday', function(){ console.log('running on Sundays of January and September'); });

Или с короткими именами:

1 2 3 4 5
var cron = require('node-cron'); cron.schedule('* * * Jan,Sep Sun', function(){ console.log('running on Sundays of January and September'); });

Cron методы

Schedule

Запланирует выполнение заданий, когда тикает выражение cron.

Аргументы:

  • ! строковое выражение-выражение Cron
  • ! Функция func-Task для выполнения
  • boolean? instantStart-ли запустить планировщик сразу после создания.

Методы ScheduledTask

Start

Запускает запланированное задание.

1 2 3 4 5 6 7
var cron = require('node-cron'); var task = cron.schedule('* * * * *', function() { console.log('immediately started'); }, false); task.start();

Stop

Задача не будет выполнена, пока не будет перезапущена.

1 2 3 4 5 6 7
var cron = require('node-cron'); var task = cron.schedule('* * * * *', function() { console.log('will execute every minute until stopped'); }); task.stop();

Destroy

Задача будет остановлена ​​и полностью уничтожена.

1 2 3 4 5 6 7
var cron = require('node-cron'); var task = cron.schedule('* * * * *', function() { console.log('will not execute anymore, nor be able to restart'); }); task.destroy();

Validate

Убедитесь, что данная строка является допустимым выражением cron.

1 2 3 4
var cron = require('node-cron'); var valid = cron.validate('59 * * * *'); var invalid = cron.validate('60 * * * *');

вопросов

Не стесняйтесь отправлять вопросы и запросы улучшения здесь .

Авторы

В общем, мы следуем рабочему процессу Git «вилка и извлечение».

  • Форк репо на GitHub;
  • Внесите изменения в ветку в вашем форке;
  • Потяните запрос "вверх по течению" с вашими изменениями;

ПРИМЕЧАНИЕ. Перед выполнением запроса на вытягивание обязательно объедините последние данные из «апстрима»!

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

лицензия

node-cron находится под ISC License .