Ajustement Logique du Weekend
Billet #72 : Ajustement de la Logique de Week-end du Pipeline de Données
Type : Amélioration / Maintenance
Composant Affecté : code_source_simule/pipeline.py, Configuration Cron
1. Contexte et Objectif Stratégique
L'objectif était de garantir une capture exhaustive des données de marché de la semaine tout en optimisant l'utilisation des ressources. Il fallait s'assurer que les données de clôture du vendredi soient bien récupérées, mais que le système ne tente pas d'exécutions inutiles lorsque les marchés sont fermés (samedi et dimanche).
2. Processus d'Investigation
Le point de départ était l'observation qu'il existait potentiellement une faille dans la logique de week-end : les données du vendredi semblaient être manquantes.
-
Hypothèse Initiale : La première hypothèse était que le script
pipeline.pycontenait une erreur logique qui empêchait son exécution le samedi. -
Analyse du Code : Une inspection du fichier
pipeline.pya été menée. Le code contenait la condition suivante : -
Découverte d'une Contradiction : L'analyse du code a prouvé que le script était, en fait, correct. Il s'arrêtait bien le dimanche (jour 6) et le lundi (jour 0), mais aurait dû s'exécuter sans problème le samedi (jour 5). Or, le problème persistait.
-
Nouvelle Hypothèse : La contradiction entre un code correct et un comportement système erroné a mené à une nouvelle hypothèse. Le problème ne venait pas du script lui-même, mais de son orchestrateur. L'hypothèse la plus probable était que la tâche
cronsur le serveur n'était pas configurée pour se déclencher le samedi.
3. Cause Racine Identifiée
La cause racine n'était pas un bug dans le code applicatif, mais une erreur de configuration de l'infrastructure. Le crontab du serveur était configuré pour n'exécuter le script que du lundi au vendredi (ex: * * * * 1-5), omettant ainsi l'exécution nécessaire du samedi.
4. Solution Implantée
La solution n'a nécessité aucune modification du code Python. La correction a été appliquée directement au niveau de l'infrastructure en modifiant la configuration du crontab pour inclure le samedi dans les jours d'exécution.
5. Justification et Bénéfices
Cette investigation souligne un principe d'ingénierie fondamental : toujours investiguer la chaîne complète. En ne s'arrêtant pas à la première hypothèse et en analysant le code, nous avons évité de complexifier inutilement un script qui était déjà correct. Le diagnostic précis a permis de cibler la véritable cause racine, aboutissant à une solution simple, efficace et sans impact sur la base de code.