Узел Cron
Модуль 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
Это краткий справочник по синтаксису 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.
Аргументы:
- ! строковое выражение-выражение Cron
- ! Функция func-Задача для выполнения
- boolean? momentStart-запускать ли планировщик сразу после создания.
ScheduledTask методы
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.