Projet

Général

Profil

Development #34458

ajout provisionning ad-hoc au niveau de l'import CSV

Ajouté par Benjamin Dauvergne il y a presque 5 ans. Mis à jour il y a presque 5 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Catégorie:
-
Version cible:
-
Début:
01 juillet 2019
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

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

Lié à Publik - Support #34447: import csv et provisionningFermé28 juin 2019

Actions

Révisions associées

Révision 904b5869 (diff)
Ajouté par Benjamin Dauvergne il y a presque 5 ans

manager: wrap csv import in provisionning context manager (#34458)

Révision 060e1995 (diff)
Ajouté par Benjamin Dauvergne il y a presque 5 ans

manager: wrap csv import in provisionning context manager (#34458)

Historique

#1

Mis à jour par Benjamin Dauvergne il y a presque 5 ans

Je vais voir pour tester ça via les cibles de test authentic dans hobo.

#2

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:
      ...
#3

Mis à jour par Benjamin Dauvergne il y a presque 5 ans

J'ai mis du temps mais ce patch ci est testé via les tests hobo (ce ne fut pas évident :/ ).

#4

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.

#5

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 ?)

#6

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).

#7

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).

#8

Mis à jour par Benjamin Dauvergne il y a presque 5 ans

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.

#9

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.

#10

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.

#11

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)
#12

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
#13

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).

#14

Mis à jour par Frédéric Péters il y a presque 5 ans

Formats disponibles : Atom PDF