MediCoder Aide

Blogues » MediCoder » Tâches périodiques et exceptions horaires
Par mytto20854 points 

Tâches périodiques et exceptions horaires

Il es fréquent d'activer des traitements de manière périodique en utilisant des tâches planifiées sur le serveur d'application de Mediboard. L'usage de l'ordonnanceur cron et de ces cron tables rend l'affaire assez aisée grâce à une syntaxe claire et compacte.

Par exemple, si on souhaite executer une action d'un module toutes les minutes, il suffit d'ajouter la ligne suivante à la table

* * * * * http://mediboard/?login=user:pass&m=module&a=action

Le problème se corse sérieusement quand on souhaite interrompre ce traitement une plage horaire donnée, par exemple quand une ressource nécessaire n'est pas disponible pour une raison x ou y. En effet, si veut exécuter une action toutes les minutes sauf de 06h40 à 07h11 par exemple, il faut ruser et découper les instructions de la table de la manière suivante:

*	0-5,8-23 * * * http://mediboard/?login=user:pass&m=module&a=action
0-39	6	 * * * http://mediboard/?login=user:pass&m=module&a=action
12-59	7	 * * * http://mediboard/?login=user:pass&m=module&a=action

Autant dire quelque chose d'assez pénible, totalement imbuvable et potentiellement source d'erreur si les planifications ont le malheur de se chevaucher.

Pour résoudre ce problème, Mediboard permet désormais de fournir des exceptions horaires pendant lesquelles les actions, vues et controlleurs sont désactivés, grâce au paramètres muters :

* * * * * http://mediboard/?login=user:pass&m=module=a=action&muters=06:40-07:11

Le paramètre s'exprime sous la forme d'une collection de paires min-max d'horaires au format ISO, complets ou non. Par exemple:

muters=11-12                # de 11h à 12h
muters=06:41-07:13:46       # de 06h41 à 07h13m46
muters=11-12-06:41-07:13:46 # sur les deux périodes précédentes

Sponsors privilégiés

Mediboard project