Bonjour,
je suis actuellement sur un (petit) projet où des dizaines de traitements indépendants doivent pouvoir être déclenchés en batch selon un ordre et des conditions définis dans une table de la BDD, appelons-là "Schedule".
Les traitements indépendants consistent surtout en des update d'une table pour ajouter / retirer du bonus (valeur numérique). Chaque règle peut ajouter du bonus, en retirer, l'améliorer de X%, etc. Les n modifications sont tracées en utilisant la fonction output.
La solution technique choisie consiste à réaliser ces traitements dans des procédures stockées. Il y a plusieurs possibilités identifiées:
- n procédures stockées, appelées depuis une procédure stockée mère qui lit la table Schedule et exécute les PS dans l'ordre indiqué (avec un flag permettant de gérer l'ordre).
- 1 seule procédure stockée qui lit la table Schedule et exécute les traitements dans l'ordre indiqué (avec un flag permettant de gérer l'ordre).
- autre solution géniale qui nous aurait échappé
Ces solutions ont été écartées:
- lancement via un flux ETL: pas d'ETL pour ce projet
- planification windows des PS : l'utilisateur (avancé) doit pouvoir réorganiser les traitements, en activer / désactiver via une interface de saisie simple
- enchaînement des PS dans un script Powershell (ou autre solution de script): l'utilisateur (avancé) doit pouvoir réorganiser les traitements, en activer / désactiver via une interface de saisie simple
- planification des PS dans des jobs SQLServer : l'utilisateur (avancé) doit pouvoir réorganiser les traitements, en activer / désactiver via une interface de saisie simple sans accès administrateur à la BDD
Sans réponse, je pense que je partirais dans la solution des n procédures stockées appelées depuis une procédure stockée mère mais je suis ouvert à toute solution répondant au besoin.
Merci beaucoup
Partager