etalab / rncs_worker_api_entreprise

API pour récupérer et mettre à disposition les données du Répertoire National du Commerce et des Société
https://entreprise.data.gouv.fr
MIT License
23 stars 13 forks source link

[TITMC] Daily Unit Import #108

Closed Haelle closed 5 years ago

Haelle commented 5 years ago

Ce que fait cette PR

Import effectif des DailyUpdateUnit TITMC. On ignore les fichiers de flux BIL/ACT on n'importe que les RCS (identité) (~50% sont ignorés)

On opère par annule et remplace.

Impacts

Chaque jour il y a n dossiers de la forme rAndOm_yyyymmddhhmmss_TITMCFLUX contenant un fichier de la forme yyyymmddhhmmss_TITMCFLUX.zip et bien sûr il y a souvent plusieurs fichiers qui s'appellent pareils. Il arrive régulièrement que ces fichiers soient traités en même temps par 2 process Sidekiq différents et donc l'un écrase l'autre provocant des erreurs d'imports.

Solution proposée ici

L'opération ZIP::Operation::Extract extrait les fichiers non plus dans un dossier filename mais filename_rAnDom et renvoie donc dans dest_directory le bon nom.

De plus les erreurs de dossier déjà présent n'étaient pas rattrapés ; l'option -o (override) de unzip écrasait les fichiers (my bad c'était moi).

Et donc malgré cet ajout d'un random je propose de tester la présence du dossier et de remonter l'erreur.

Fichiers de log

pour améliorer la recherche dans les noms de logs TITMC ils sont nommés yyyymmddhhmmss_rAnDom_date_du_jour.log en référence au nom du fichier traité

brindu commented 5 years ago

Cf #134