Node Cron
El mòdul node-cron és un minúscul programador de tasques en JavaScript pur per a node.js basat en GNU crontab . Aquest mòdul us permet programar tasques en node.js mitjançant la sintaxi completa de crontab.
Començant
Instal·leu node-cron mitjançant npm:
1$ npm install --save node-cron
Importeu node-cron i planifiqueu una tasca:
1
2
3
4
5var cron = require('node-cron');
cron.schedule('* * * * *', function(){
console.log('running a task every minute');
});
Sintaxi Cron
Aquesta és una referència ràpida a la sintaxi de cron i també mostra les opcions admeses per 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
camp | valor |
---|---|
segon | 0-59 |
minut | 0-59 |
hores | 0-23 |
dia del mes | 1-31 |
mes | 1-12 (o noms) |
dia de la setmana | 0-7 (o els noms, 0 o 7 són diumenge) |
Utilització de valors múltiples
Podeu utilitzar diversos valors separats per comes:
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');
});
Ús d’intervals
També podeu definir un interval de valors:
1
2
3
4
5var cron = require('node-cron');
cron.schedule('1-5 * * * *', function(){
console.log('running every minute to 1 from 5');
});
Utilitzant valors de pas
Els valors de pas es poden utilitzar juntament amb intervals, seguint un interval amb '/' i un número. Per exemple: 1-10/2
és el mateix que 2,4,6,8,10
. Els passos també es permeten després d'un asterisc, de manera que si voleu dir "cada dos minuts" , només cal utilitzar */2
.
1
2
3
4
5var cron = require('node-cron');
cron.schedule('*/2 * * * *', function(){
console.log('running a task every two minutes');
});
Utilitzant noms
Per al mes i el dia de la setmana també podeu utilitzar noms o noms curts, per exemple:
1
2
3
4
5var cron = require('node-cron');
cron.schedule('* * * January,September Sunday', function(){
console.log('running on Sundays of January and September');
});
O amb noms curts:
1
2
3
4
5var cron = require('node-cron');
cron.schedule('* * * Jan,Sep Sun', function(){
console.log('running on Sundays of January and September');
});
Mètodes Cron
Schedule
Programa les tasques que s’executen quan s’expressi l’expressió cron.
Arguments:
- ! string expression-Cron expression
- ! Funció func-Task que cal executar
- boolean? immediatStart: si s'inicia el planificador immediatament després de crear-lo.
Mètodes ScheduledTask
Start
Inicia la tasca programada.
1
2
3
4
5
6
7var cron = require('node-cron');
var task = cron.schedule('* * * * *', function() {
console.log('immediately started');
}, false);
task.start();
Stop
La tasca no s'executarà tret que es reiniciï.
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
La tasca s’aturarà i es destruirà completament.
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
Valideu que la cadena donada sigui una expressió cron vàlida.
1
2
3
4var cron = require('node-cron');
var valid = cron.validate('59 * * * *');
var invalid = cron.validate('60 * * * *');
Problemes
No dubteu a enviar problemes i sol·licituds de millora aquí .
Col·laboradors
En general, seguim el flux de treball Git "fork-and-pull".
- Forqueu la reposició a GitHub;
- Confirmeu els canvis a una sucursal de la vostra bifurcació;
- Extraieu la sol·licitud "aigües amunt" amb els vostres canvis;
NOTA: Assegureu-vos de combinar les últimes novetats de "upstream" abans de fer una sol·licitud d'extracció.
Si us plau, no aporteu codi que no hàgiu escrit, tret que estigueu segur que teniu la capacitat legal de fer-ho. Assegureu-vos també que tots els codis aportats es puguin distribuir sota la llicència ISC.
Llicència
node-cron està sota ISC License.