Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BACK] méthode list_all_vessel_last_position ne renvoie pas la dernière position #251

Closed
marthevienne opened this issue Nov 10, 2024 · 8 comments
Assignees

Comments

@marthevienne
Copy link
Collaborator

marthevienne commented Nov 10, 2024

Les positions récupérées via la méthode list_all_vessel_last_position dans /routers/V1/vessels.py va chercher la position de fin du dernier segment calculé pour chaque navire. Le problème est que le calcul des segments ne se fait pas à chaque call API.

Pour l'instant, le lancement du pipeline de transformation se fait manuellement par @njouanin (tous les 2 jours environ ?). Si nous pouvons lancer la pipeline de transformation des données Spire toutes les 15 min, alors on peut supposer que la end_position du dernier segment est en effet la dernière position reçue. Sinon, on va devoir lancer une autre tâche intermédiaire juste pour stocker temporairement les dernières positions.

@rv2931
Copy link
Collaborator

rv2931 commented Nov 10, 2024

Ok. Le souci que je vois c'est surtout qu'on va avoir les dernières positions si on va les chercher dans les données sources mais qu'on aura aucune autre information à jour (ni segment, ni excursion, ni temps passé sur amp, et pas de nettoyage/validation des positions...)
Y a-t-il une raison particulière pour laquelle le pipeline de transfos ne se fait pas tout les 15 minutes aussi ? de mémoire c'est ce qui était prévu tant qu'il durait significativement moins de 15 minutes ou je me trompe ?
Mais si c'est préférable d'aller chercher la dernière position je vais changer ça pas de souci

@njouanin
Copy link
Collaborator

Non il faut bien que tu ailles chercher les dernières positions dans fct_segment. D'ailleurs il y a une colonne qui indique si un segment est le dernier segment d'une excursion.
En cible le traitement doit bien se lancer tous les 1/4 d'heure mais jusqu'à présent on n'a pas pu configurer le cron de clever, je dois regarder. Du coup pour l'instant comme l'a dit Marthe c'est moi qui lance le traitement manuellement de manière plus ou moins régulière.
=> j'essaye de regarder cette histoire demain.

@marthevienne
Copy link
Collaborator Author

Ok, je pensais que ça serait impossible de faire tourner l'ETL toutes les 15 min. J'ai bien compris comment marche la méthode. Parfait :) Si besoin de mettre en place le cron, je peux le faire vu que je l'ai fait pour ipolitics sur clevercloud.

@rv2931
Copy link
Collaborator

rv2931 commented Nov 11, 2024

Pour les cron @SaboniAmine a déjà mis un a priori
Mais effectivement il ne concerne que la récupération des positions
https://github.com/dataforgoodfr/12_bloom/blob/main/clevercloud/clever.json

@marthevienne
Copy link
Collaborator Author

Ah yes ! Il a repris ce que j'avais fait ! Cool :) On en discute ensemble Nicolas quand tu veux.

@njouanin
Copy link
Collaborator

njouanin commented Nov 11, 2024

Il faut exécuter (toutes les 15 minutes) successivement et dans cet ordre les traitements:

  • load_spire_data_from_api.py
  • clean_positions.py
  • create_update_excursions_segments.py

On peut mettre ça dans un shell et programmer un cron toutes les 15 minutes. Peut-être entouré d'un flock pour éviter que le script se relance s'il est encore encore en cours au bout de 15 minutes.

@SebM42
Copy link
Collaborator

SebM42 commented Nov 11, 2024

Et je précise également qu'il est très important que si un des scripts est interrompu pour n'importe quelle raison, aucun autre traitement futur ne doit être lancé

@marthevienne
Copy link
Collaborator Author

marthevienne commented Nov 11, 2024

Closed. Nouvelle issue plus générale #254

@rv2931 rv2931 closed this as completed Nov 15, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants