Version 2 (modified by Tomtom33, 15 years ago) (diff) |
---|
dcCron
Programmez des tâches à intervalles réguliers
Auteur/Contributeurs?
- Author: Tomtom33
- Contributors:
Développement
Bugs et améliorations demandées
Dépôt
Changements récents
[2656] by Tomtom33 on 09/21/10 12:33:53
dcCron:
- Updated link with dcLog plugin
- Updated CSS class for tasks list
[2654] by Tomtom33 on 09/21/10 11:28:34
dcCron 2.0-RC2:
- Exception management for check() function
- Improved filters
- Improved UI
[2650] by Tomtom33 on 09/20/10 20:06:11
dcCron 2.0-RC1:
- Lock file support
- Fixed date concurrency
- Improved tasks check
- Improved UI
Documentation
dcCron est un plugin générique qui peut être utilisé et appelé par tous les autres plugins pour programmer des tâches à intervalles réguliers. Le plugin fourni une API très simple pour l'utiliser
Ajouter / Modifier des tâches
Pour ajouter une tâche, mettez simplement dans votre code :
if (isset($core->blog->dcCron)) { $core->blog->dcCron->put('NomDeLaTache','Intervalle','Callback'); }
- NomDeLaTache doit être une chaîne alphanumérique. C'est à dire qu'elle doit contenir uniquement des chiffres et/ou des lettres.
- Intervalle doit être un entier ayant pour unité la seconde.
- Callback doit être un tableau (array) prenant comme premier argument le nom d'une classe et comme deuxième argument le nom d'une fonction de cette classe.
Supprimer une tâche
Pour supprimer une tâche, ajoutez simplement ce code dans votre plugin :
if (isset($core->blog->dcCron)) { $core->blog->dcCron->del('NomDeLaTache'); }
- NomDeLaTache doit être une chaîne alphanumérique. C'est à dire qu'elle doit contenir uniquement des chiffres et/ou des lettres
Vérifier si une tâche existe
Pour vérifier qu'une tâche existe, mettez simplement ce code :
if ($core->blog->dcCron->taskExists('NomDeLaTache')) { # la tâche existe à ce point }
- NomDeLaTache doit être une chaîne alphanumérique. C'est à dire qu'elle doit contenir uniquement des chiffres et/ou des lettres
Conception
Fonctionnement
Le plugin fourni deux méthodes pour gérer correctement les tâches : put() et del(). La méthode put() permet d'ajouter une tâche en se basant sur le nom que l'on va lui donner. Si aucune tâche n'existe à ce nom, la fonction exécute le callback et enregistre tous les paramètres ainsi que la date de la première exécution.
Si la tache existe déjà, la fonction va la modifier. Deux cas de figure se présentent alors :
- L'intervalle que l'on a passé est le même que celui enregistré. Dans ce cas, la fonction remplace uniquement le callback
- L'intervalle que l'on a passé est différent de celui enregistré. Dans ce cas, la fonction va exécuter le nouveau callback et va ensuite enregistrer tous les nouveau paramètres ainsi que la date de cette nouvelle exécution.
Si jamais les arguments passés en paramètres de la méthode put() ne sont pas corrects (voir détail plus haut), le plugin génère des exceptions qui seront affichées comme des erreurs.
Le plugin fourni aussi une page permettant de voir, modifier et supprimer de façon "graphique" toutes les tâche enregistrées pour un blog. Il est important de savoir que les tâches enregistrées ne le sont que pour le blog courant. On peut avoir différentes tâches sur différents blogs lors d'une installation multi-blog.