NodoCron
Il modulo node-cron è un piccolo pianificatore di attività in puro JavaScript per node.js basato su GNU crontab.Questo modulo consente di pianificare attività in node.js utilizzando la sintassi crontab completa.
Iniziare
Installa node-cron usando npm:
1$ npm install --save node-cron
Importa node-cron e pianifica un'attività:
1
2
3
4
5var cron = require('node-cron');
cron.schedule('* * * * *', function(){
console.log('running a task every minute');
});
Sintassi Cron
Questo è un rapido riferimento alla sintassi di cron e mostra anche le opzioni supportate da 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
campo | valore |
---|---|
secondo | 0-59 |
minuto | 0-59 |
ora | 0-23 |
giorno del mese | 1-31 |
mese | 1-12 (o nomi) |
giorno della settimana | 0-7 (o nomi, 0 o 7 sono domenica) |
Utilizzo di valori multipli
Puoi utilizzare più valori separati da virgola:
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');
});
Utilizzo degli intervalli
Puoi anche definire un intervallo di valori:
1
2
3
4
5var cron = require('node-cron');
cron.schedule('1-5 * * * *', function(){
console.log('running every minute to 1 from 5');
});
Utilizzo dei valori di passo
I valori dei passi possono essere utilizzati insieme agli intervalli, seguendo un intervallo con "/" e un numero. Ad esempio: 1-10/2
è uguale a 2,4,6,8,10
. I passaggi sono consentiti anche dopo un asterisco, quindi se vuoi dire "ogni due minuti" , basta usare */2
.
1
2
3
4
5var cron = require('node-cron');
cron.schedule('*/2 * * * *', function(){
console.log('running a task every two minutes');
});
Utilizzando i nomi
Per il mese e il giorno della settimana è possibile utilizzare anche nomi o nomi brevi, ad esempio:
1
2
3
4
5var cron = require('node-cron');
cron.schedule('* * * January,September Sunday', function(){
console.log('running on Sundays of January and September');
});
Oppure con nomi brevi:
1
2
3
4
5var cron = require('node-cron');
cron.schedule('* * * Jan,Sep Sun', function(){
console.log('running on Sundays of January and September');
});
Metodi Cron
Schedule
Pianifica l'esecuzione dell'attività specificata ogni volta che viene attivata l'espressione cron.
Argomenti:
- !string espressione - Espressione Cron
- !Funzione funz - Attività da eseguire
- booleano? immediateStart: indica se avviare lo scheduler immediatamente dopo la creazione.
Metodi ScheduledTask
Start
Avvia l'attività pianificata.
1
2
3
4
5
6
7var cron = require('node-cron');
var task = cron.schedule('* * * * *', function() {
console.log('immediately started');
}, false);
task.start();
Stop
L'attività non verrà eseguita a meno che non venga riavviata.
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
L'attività verrà interrotta e completamente distrutta.
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
Verifica che la stringa fornita sia un'espressione cron valida.
1
2
3
4var cron = require('node-cron');
var valid = cron.validate('59 * * * *');
var invalid = cron.validate('60 * * * *');
Problemi
Sentiti libero di inviare problemi e richieste di miglioramento qui .
Contributori
In generale, seguiamo il flusso di lavoro Git "fork-and-pull".
- Effettua il fork del repository su GitHub;
- Applica le modifiche a un ramo nel tuo fork;
- Pull richiesta "a monte" con le modifiche;
NOTA: assicurati di unire l'ultima versione da "upstream" prima di effettuare una richiesta pull!
Per favore non contribuire con codice che non hai scritto tu stesso, a meno che tu non sia sicuro di avere la capacità legale di farlo. Assicurati inoltre che tutto il codice contribuito possa essere distribuito sotto la licenza ISC.
Licenza
node-cron è sottoISC License.