scronpt v0.3.1
Scronpt
Bibliothèque JavaScript implémentant un programme Unix cron.
Description
La bibliothèque JavaScript Scronpt fourni une classe Cron
pour créer
des tâches récurentes.
API
Constructeur
new Cron(notation, [état], fonction, [param1, param2, ...])
où
notation
contient la notation cron indiquant quand sera appelé lafonction
;état
est un booléen indiquant si la tâche est active :true
(valeur par défaut), sinon :false
;fonction
est la fonction qui sera appelée à chaque horaire indiqué dans lanotation
;param1
,param2
,...
sont des paramètres qui seront passés à lafonction
.
Le constructeur peut lancer une exception :
Error
si la syntaxe de la notation cron est incorrecte ;RangeError
si un intervalle est invalide (hors limite ou la borne supérieure est plus grande que la borne inférieure) ;TypeError
si le constucteur est appellé sans le mot clénew
ou si des paramètres n'ont pas le bon type.
Méthodes
Cron.prototype.start()
Activer la tâche. Si la tâche est déjà active : la méthode n'a aucun effet.
Cron.prototype.stop()
Désactiver la tâche. Si la tâche est déjà inactive : la méthode n'a aucun effet.
Cron.prototype.status()
Récupérer l'état de la tâche. La méthode retourne true
si la tâche est
active ; et false
pour une tâche inactive.
Téléchargement
Vous pouvez récupérer le script minifié (2 427 octets) en vous rendant sur le site Internet de la bibliothèque : regseb.github.io/scronpt.
Si vous utiliser npm ou bower, la bibliothèque est disponible avec les lignes de commande suivantes :
npm install scronpt
bower install scronpt
Utilisation
AMD
Pour l'utilisation de la bibliothèque avec un chargeur AMD (par exemple RequireJS) :
require(["scronpt"], function (Cron) {
// ...
var cron = new Cron(/* ... */);
});
// Ou :
define(["scronpt"], function (Cron) {
// ...
var cron = new Cron(/* ... */);
});
CommonJS
Si vous souhaitez utiliser la bibliothèque dans Node.js (qui utilise le protocole CommonJS), voici un exemple :
var Cron = require("scronpt");
// ...
var cron = new Cron(/* ... */);
Variable global
Il suffit de télécharger le script et de l'inclure dans la page HTML.
<!DOCTYPE html>
<html>
<head>
<!-- ... -->
<script src="scronpt.js"></script>
<!-- ... -->
<script>
var cron = new Cron(/* ... */);
</script>
</head>
<body>
<!-- ... -->
</body>
</html>
Notations
Le paramètre notation
est une chaine 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 :
1
oujan
,2
oufeb
, ...,12
oudec
; - le jour de la semaine :
0
,7
ousun
,1
oumon
, ...,6
ousat
.
Pour chaque élément, des compositions sont possibles :
*
: couvrir toutes les unités (0
,1
,2
, ...) ;-
: définir un intervalle (1-3
corresponds aux unités1
,2
et3
) ;/
: indiquer le pas (2-6/2
corresponds aux unités2
,4
et6
) ;,
: créer une liste (4,8
corresponds aux unités4
et8
).
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
.
Exemples
// Appeler la fonction poissonDAvril tous les 1er avril à 8h00.
var cron = new Cron("0 8 1 apr *", poissonDAvril);
// Appeler la fonction alert toutes les demi-heures au travail (entre
// 9h et 18h) en semaine (du lundi au vendredi).
new Cron("0,30 9-18 * * 1-5", alert, "Ding ! Dong !");
// Arrêter la tâche du poisson d'avril, ce n'est plus de notre age.
cron.stop();
// Finalement, il n'y a pas d'age pour s'amuser.
cron.start();
Compatibilité
Voici les versions minimales nécessaires pour utiliser la bibliothèque avec les principaux navigateurs.
Chrome | Firefox | Internet Explorer | Opera | Safari |
---|---|---|---|---|
4 | 5 | 9 | 12 | 5 |