Cronnor
Bibliothèque JavaScript implémentant un programme cron.
Description
La bibliothèque JavaScript Cronnor fournit une classe Cron pour créer
des tâches récurrentes. Elle est disponible pour Node.js et les navigateurs.
import { Cron } from "cronnor";
function task() {
// Awesome task to be done every working day at 8am.
};
const cron = new Cron("0 8 * * 1-5", task);
// It's holiday time !
cron.stop();Installation
Cronnor est publiée dans npm :
npm install cronnorElle est aussi accessible directement avec le CDN jsDelivr :
import { Cron } from "https://cdn.jsdelivr.net/npm/cronnor";API
new Cron(cronex, func, [active]).active.bind(thisArg, ...args).unbind().withArguments(...args).run().start().stop().test([date]).next([start])
new Cron(cronex, func, [active])
Crée une tâche cronée.
- Paramètres :
cronex(string | string[]): La ou les expressions cron indiquant les horaires d’exécution de la tâche.func(Function) : La fonction appelée à chaque horaire indiqué dans les expressions cron.active(boolean) :true(par défaut) pour activer la tâche ; sinonfalse.
- Exceptions :
Error: Si la syntaxe d’une expession cron est incorrecte.RangeError: Si un intervalle d’une expression cron est invalide (hors limite ou quand la borne supérieure est plus grande que la borne inférieure).TypeError: Si le constructeur est appelé sans le mot clénewou si un des paramètres n’a pas le bon type.
.active (lecture seule)
Récupère l’état de la tâche (active ou non).
- Valeur retournée :
truesi la tâche est active ; sinonfalse.
.bind(thisArg, ...args)
Définit le this et les paramètres passés à la fonction.
- Paramètres :
thisArg(any) : Lethisutilisé pour la fonction.args(...any) : Les paramètres passés à la fonction.
- Valeur retournée : La tâche elle-même.
.unbind()
Remet les valeurs par défaut pour le this et les paramètres passés à la
fonction.
- Valeur retournée : La tâche elle-même.
.withArguments(...args)
Définit les paramètres passés à la fonction.
- Paramètres :
args(...any) : Les paramètres passés à la fonction.
- Valeur retournée : La tâche elle-même.
.run()
Exécute manuellement la fonction.
.start()
Active la tâche.
- Valeur retournée :
truequand la tâche a été activée ;falsesi elle était déjà active.
.stop()
Désactive la tâche.
- Valeur retournée :
truequand la tâche a été désactivée ;falsesi elle était déjà inactive.
.test([date])
Teste si une expression cron de la tâche est respectée.
- Paramètre :
date(Date) : La date qui sera testée (ou l’instant présent par défaut).
- Valeur retournée :
truesi une expression est respectée ; sinonfalse.
.next([start])
Calcule la prochaine date respectant une expression cron de la tâche.
- Paramètre :
start(Date) : La date de début (ou l’instant présent par défaut).
- Valeur retournée : La prochaine date respectant une expression ou
undefineds’il n’y a pas de prochaine date (quand il n’y a aucune expression cron).
Expression cron
Les expressions cron sont des chaines de caractères composées de cinq éléments séparés par une espace. Les éléments représentent :
- les minutes :
0à59; - les heures :
0à23; - le jour du mois :
0à31; - le mois :
1oujan,2oufeb, …,12oudec; - le jour de la semaine :
0,7ousun,1oumon, …,6ousat.
Pour chaque élément, des compositions sont possibles :
*: couvrir toutes les unités (0,1,2, …) ;-: définir un intervalle (1-3corresponds aux unités1,2et3) ;/: indiquer le pas (2-6/2corresponds aux unités2,4et6) ;,: créer une liste (4,8corresponds aux unités4et8).
Il existe aussi des chaines spéciales :
"@yearly"ou"@annually": tous les ans, le 1er janvier ;"@monthly": le 1er jour de chaque mois ;"@weekly": une fois par semaine, le dimanche ;"@daily"ou"@midnight": tous les jours à minuit ;"@hourly": toutes les heures.
Pour plus d’information, vous pouvez consulter le manuel de crontab.