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

Узел Cron

npm npm Статус покрытия Код Климат Статус сборки Статус зависимости Статус devDependency

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

НПМ

Начиная

Установите 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-Задача для выполнения
  • boolean? momentStart-запускать ли планировщик сразу после создания.

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.

Лицензия

узел-cron находится под ISC License.