par stloje » 23 Fév 2010 à 09:11
C'est un peu complexe comme solution, mais je pense que ça va tenir la route.
Tu fais une base qui contient les documents de paramètres des agents planifiés.
Chaque document contiendra le nom de l'agent, la base qui l'héberge et la période à laquelle il doit être déclanché.
La base va aussi contenir une vue pour afficher la journalisation des agents. Le journal indiquera le nom de l'agent, à quel moment il a débuté (devient non disponible), s'est terminé (devient disponible) et la liste d'erreurs possibles survenues durant son exécution.
A l'aide d'un agent principal qui s'exécutera toutes les 5 min., il parcourera la liste des paramètres pour savoir lequels il faut déclancher. Ensuite, il vérifie dans le journal s'il est disponible pour procéder à son exécution. S'il est disponible, il inscrit dans le journal que l'agent en question qu'il a débuté. En fin de traitement, il indique qu'il est terminé (rend disponible pour une prochaine réexécution). En cas d'erreur, il le journalise et interrompt (selon le cas) l'agent. Ce dernier sera considéré en erreur et ne pourra plus être exécuté jusqu'à correction.
Et vive le cambouis! Si t'en as jusque sous les bras, c'est parce que tu as cherché longuement la solution ou tout simplement parce que tu t'es vautré!