НодеКрон
Модуль 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
5var cron = require('node-cron');
cron.schedule('* * * * *', function(){
console.log('running a task every minute');
});
Синтаксис Крон
Это краткий справочник по синтаксису 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
5var 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
5var 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
5var cron = require('node-cron');
cron.schedule('*/2 * * * *', function(){
console.log('running a task every two minutes');
});
Использование имен
Для месяца и дня недели вы также можете использовать имена или короткие имена, например:
1
2
3
4
5var cron = require('node-cron');
cron.schedule('* * * January,September Sunday', function(){
console.log('running on Sundays of January and September');
});
Или с короткими именами:
1
2
3
4
5var cron = require('node-cron');
cron.schedule('* * * Jan,Sep Sun', function(){
console.log('running on Sundays of January and September');
});
Методы cron
Schedule
Планирует выполнение данной задачи всякий раз, когда срабатывает выражение cron.
Аргументы:
- !string выражение — выражение Cron
- !Function func — Задача, которую необходимо выполнить.
- boolean?immediateStart — запускать ли планировщик сразу после создания.
Методы запланированной задачи
Start
Запускает запланированное задание.
1
2
3
4
5
6
7var cron = require('node-cron');
var task = cron.schedule('* * * * *', function() {
console.log('immediately started');
}, false);
task.start();
Stop
Задача не будет выполнена, если ее не перезапустить.
1
2
3
4
5
6
7var 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
7var 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
4var cron = require('node-cron');
var valid = cron.validate('59 * * * *');
var invalid = cron.validate('60 * * * *');
Проблемы
Не стесняйтесь сообщать о проблемах и пожеланиях по улучшению здесь .
Авторы
В целом мы следуем принципу «вилки и вытягивания» Git.
- Создайте форк репозитория на GitHub;
- Зафиксируйте изменения в ветке вашего форка;
- Запрос на включение «вверх по течению» с вашими изменениями;
ПРИМЕЧАНИЕ. Прежде чем делать запрос на включение, обязательно объедините последнюю версию из «восходящего потока»!
Пожалуйста, не добавляйте код, который вы не писали сами, если вы не уверены, что у вас есть на это юридическая возможность. Также убедитесь, что весь предоставленный код может распространяться по лицензии ISC.
Лицензия
узел-cron находится подISC License.