Development #34458
ajout provisionning ad-hoc au niveau de l'import CSV
0%
Description
Pour ne pas partir sur une modification globale du comportement des threads, avoir un with engine
juste au niveau du thread d'import CSV.
Fichiers
Demandes liées
Révisions associées
manager: wrap csv import in provisionning context manager (#34458)
Historique
Mis à jour par Benjamin Dauvergne il y a presque 5 ans
- Fichier 0001-manager-wrap-csv-import-in-provisionning-context-man.patch 0001-manager-wrap-csv-import-in-provisionning-context-man.patch ajouté
- Statut changé de Nouveau à Solution proposée
- Patch proposed changé de Non à Oui
Je vais voir pour tester ça via les cibles de test authentic dans hobo.
Mis à jour par Thomas Noël il y a presque 5 ans
Pas testé, mais je crois que la syntaxe est plutôt :
from hobo.agent.authentic2.provisionning import Provisionning engine = Provisionning() with engine: ...
Mis à jour par Benjamin Dauvergne il y a presque 5 ans
- Fichier 0001-manager-wrap-csv-import-in-provisionning-context-man.patch 0001-manager-wrap-csv-import-in-provisionning-context-man.patch ajouté
J'ai mis du temps mais ce patch ci est testé via les tests hobo (ce ne fut pas évident :/ ).
Mis à jour par Benjamin Dauvergne il y a presque 5 ans
Thomas Noël a écrit :
Pas testé, mais je crois que la syntaxe est plutôt :
[...]
Non il faut utiliser l'instance existante.
Mis à jour par Thomas Noël il y a presque 5 ans
J'ai pas encore testé "en live" mais je pense avoir compris, et ça me dirait bien d'avoir deux commentaires dans le code :
1. Au niveau de l'import de l'instance existante "... import provisionning as engine", dire qu'on utilise l'instance créée dans le apps.py de hobo.agents.authentic2 (c'est bien celle-là ?)
2. Au niveau du engine.wait(), dire qu'il est là pour "forcer" le wait en cas de pépin (exception) qui ferait que le exit du contextmanager ne ferait pas ce wait (c'est ça ?)
Mis à jour par Benjamin Dauvergne il y a presque 5 ans
Thomas Noël a écrit :
J'ai pas encore testé "en live" mais je pense avoir compris, et ça me dirait bien d'avoir deux commentaires dans le code :
1. Au niveau de l'import de l'instance existante "... import provisionning as engine", dire qu'on utilise l'instance créée dans le apps.py de hobo.agents.authentic2 (c'est bien celle-là ?)
2. Au niveau du engine.wait(), dire qu'il est là pour "forcer" le wait en cas de pépin (exception) qui ferait que le exit du contextmanager ne ferait pas ce wait (c'est ça ?)
Non c'est pour forcer l'imbrication des threads, que le thread de provisionning ne dure pas plus longtemps que le thread d'import (en vrai faudrait pouvoir désactiver ce thread, il ne sert à rien ici, on est déjà en tâche de fond).
Mis à jour par Benjamin Dauvergne il y a presque 5 ans
C'était surtout pour que mes tests fonctionnent : https://jenkins2.entrouvert.org/job/hobo-wip/job/wip%252Ftest-csv-provisionning/3/console (à part pylint qui fait chier ça marche, aucune idée de pourquoi pylint foire sur ma branche et pas dans le job principal, mais je serai pour juster virer pylint-django qui ne marche plus en python2.7).
Mis à jour par Benjamin Dauvergne il y a presque 5 ans
- Fichier 0001-manager-wrap-csv-import-in-provisionning-context-man.patch 0001-manager-wrap-csv-import-in-provisionning-context-man.patch ajouté
Voilà, avec un contextmanager plus propre, et remonter au moment de l'import lui même, quand l'import est marqué terminé, c'est que le provisionning a aussi été fait.
Mis à jour par Benjamin Dauvergne il y a presque 5 ans
Voilà le nouveau code passe aussi, https://jenkins2.entrouvert.org/job/hobo-wip/job/wip%252Ftest-csv-provisionning/4/console mais toujours pylint qui fait chier.
Mis à jour par Thomas Noël il y a presque 5 ans
- Statut changé de Solution proposée à Solution validée
Je suis un peu gêné par le nom "publik_provisionning", je trouve que "hobo_provisionning" voire "provisionning" ça aurait été plus joli.
Mais c'est testé "en vrai" (sur un devinst/runserver) et ça se passe très bien.
Go.
Mis à jour par Benjamin Dauvergne il y a presque 5 ans
- Statut changé de Solution validée à Résolu (à déployer)
commit 35f76b7b169de49ea767af74af5dcf513033f24e Author: Benjamin Dauvergne <bdauvergne@entrouvert.com> Date: Mon Jul 1 11:29:56 2019 +0200 manager: wrap csv import in provisionning context manager (#34458)
Mis à jour par Frédéric Péters il y a presque 5 ans
- Statut changé de Résolu (à déployer) à Solution déployée
Mis à jour par Frédéric Péters il y a presque 5 ans
C'est dispo dans stretch-hotfix. (qui est sur toutes les prods).
Mis à jour par Frédéric Péters il y a presque 5 ans
- Lié à Support #34447: import csv et provisionning ajouté
manager: wrap csv import in provisionning context manager (#34458)