You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Pour fiabiliser l'interrogation des données Spire via API, je propose de mettre en place un mécanisme qui permet de coordonner plusieurs instance du script load_spire_data_from_api en utilisant les données présentes en BDD dans la table taskExecutions
Le principe de fonctionnement est:
au lancement de la tâche load_spire_data_from_api, on vérifie que la tâche la plus récemment exécutée a été exécutée il y a plus de 1( minutes (ajout du paramètres settings.api_pooling_period=15m par défaut)
si une une ligne existe avec un point_in_time plus récent alors notre tâche ne fait rien est se termine pour laisser la tâche en cours exécuter l'interrogation Spire API
si aucune ligne existe avec un point_in_time plus récent que 15 minutes alors notre tâche continue en enregistrant sa propre ligne en base avec un nouveau point_in_time avec la date courante, ce qui empêchera les autres instance load_spire_data_from_api de s'exécuter pendant 15 minutes (par défaut)
Si d'aventure une erreur apparait lors de l'exécution, alors on rollback tout ce qui était en cours et on supprime la ligne qui avait été ajoutée au lancement pour signifier aux autres tâches qu'elles peuvent se lancer
En faisant en sorte que les tâches load_spire_data_from_api se lancent toutes les 15 minutes mais sur des minutes différentes (0, 5, 10 par exemple) on aura donc plusieurs machines qui peuvent interroger Spire mais seulement une requête ne sera réellement exécutée par tranche de 15/20 minutes
Cela permet de fiabiliser un peu l'interrogation par contre ça ne permet pas de se prémunir d'un problème sur la machine hébergeant la BDD
Ce mécanisme a été ajouté dans la PR #399 avec l'issue #398
Les deux sont à valider
The text was updated successfully, but these errors were encountered:
Pour fiabiliser l'interrogation des données Spire via API, je propose de mettre en place un mécanisme qui permet de coordonner plusieurs instance du script load_spire_data_from_api en utilisant les données présentes en BDD dans la table taskExecutions
Le principe de fonctionnement est:
En faisant en sorte que les tâches load_spire_data_from_api se lancent toutes les 15 minutes mais sur des minutes différentes (0, 5, 10 par exemple) on aura donc plusieurs machines qui peuvent interroger Spire mais seulement une requête ne sera réellement exécutée par tranche de 15/20 minutes
Cela permet de fiabiliser un peu l'interrogation par contre ça ne permet pas de se prémunir d'un problème sur la machine hébergeant la BDD
Ce mécanisme a été ajouté dans la PR #399 avec l'issue #398
Les deux sont à valider
The text was updated successfully, but these errors were encountered: