Projet

Général

Profil

Development #57019

implémenter notre propre uwsgidecorators

Ajouté par Benjamin Dauvergne il y a plus de 2 ans. Mis à jour il y a environ 2 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Catégorie:
-
Version cible:
-
Début:
16 septembre 2021
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

Parce que celui upstream me fait peur.


Fichiers


Demandes liées

Lié à Hobo - Development #56991: UnpicklingError: pickle data was truncatedFermé16 septembre 2021

Actions

Révisions associées

Révision 7817af0d (diff)
Ajouté par Benjamin Dauvergne il y a environ 2 ans

tests: refactor multitenant conftest (#57019)

Révision fc2c4ee7 (diff)
Ajouté par Benjamin Dauvergne il y a environ 2 ans

add uwsgidecorators module (#57019)

Historique

#1

Mis à jour par Benjamin Dauvergne il y a plus de 2 ans

#3

Mis à jour par Benjamin Dauvergne il y a plus de 2 ans

Voilà testé localement dans publik-devinst sur combo :

Les modifs faites localement :

diff --git a/combo/public/views.py b/combo/public/views.py
index 8be4fd1c..714ca85c 100644
--- a/combo/public/views.py
+++ b/combo/public/views.py
@@ -455,6 +455,8 @@ def empty_site(request):

 def page(request):
+    from combo.utils.spooler import coin
+    coin(1, 2, 'x' * 1000000)
     request.extra_context_data = {'absolute_uri': request.build_absolute_uri()}
     url = request.path_info
     parts = [x for x in request.path_info.strip('/').split('/') if x]
diff --git a/combo/utils/spooler.py b/combo/utils/spooler.py
index 40298ccf..377572f1 100644
--- a/combo/utils/spooler.py
+++ b/combo/utils/spooler.py
@@ -58,7 +58,7 @@ def tenantspool(func):
     if not USE_UWSGI:
         return func

-    from uwsgidecorators import spool
+    from hobo.multitenant.uwsgidecorators import spool

     @ensure_db
     @wraps(func)
@@ -71,10 +71,10 @@ def tenantspool(func):
             except Exception:
                 logger.exception('spooler: exception during %s(%s, %s)' % (func.__name__, args, kwargs))
             else:
-                logger.info('spooler: success of %s(%s, %s)' % (func.__name__, args, kwargs))
+                logger.info('spooler: success of %s(%s, %s)' % (func.__name__, repr(args)[:1024], repr(kwargs)[:1024]))

     # pass arguments as pickles
-    base_spooler = spool(pass_arguments=True)(spooler_func)
+    base_spooler = spool(spooler_func)

     @wraps(func)
     def spooler(*args, **kwargs):
@@ -99,3 +99,8 @@ def refresh_statistics_data(cell_pk):

     cell = ChartNgCell.objects.get(pk=cell_pk)
     cell.get_statistic_data(invalidate_cache=True)
+
+
+@tenantspool
+def coin(a, b, c):
+    logger.info('spooler: coin a=%s, b=%s, len(c)=%d', a, b, len(c))

Les logs :

spooler: coin a=1, b=2, len(c)=1000000
spooler: success of coin((1, 2, 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx, {})
spooler: coin a=1, b=2, len(c)=1000000
spooler: success of coin((1, 2, 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx, {})

Aucun souci pour passer une chaîne de 1Mo.

#4

Mis à jour par Thomas Noël il y a plus de 2 ans

Peut-être que je vais dire une bêtise, mais est-ce qu'on pourrait intégrer au passage #57023 (gestion des connexion à la DB dans les fonction spoolées) ?

#5

Mis à jour par Benjamin Dauvergne il y a plus de 2 ans

Thomas Noël a écrit :

Peut-être que je vais dire une bêtise, mais est-ce qu'on pourrait intégrer au passage #57023 (gestion des connexion à la DB dans les fonction spoolées) ?

Oui et la gestion du tenant aussi pourquoi pas...

#6

Mis à jour par Benjamin Dauvergne il y a plus de 2 ans

  • Statut changé de Solution proposée à En cours

Ajouter ensure_db et gérer la conservation du tenant.

#7

Mis à jour par Benjamin Dauvergne il y a plus de 2 ans

En l'absence de Thomas je veux bien quelqu'un s'intéresse au sujet.

#8

Mis à jour par Thomas Noël il y a plus de 2 ans

#9

Mis à jour par Thomas Noël il y a environ 2 ans

  • Statut changé de Solution proposée à Solution validée
#10

Mis à jour par Benjamin Dauvergne il y a environ 2 ans

  • Statut changé de Solution validée à Résolu (à déployer)
commit fc2c4ee7946aec89c9fd5408a3bcd6d68fddff31
Author: Benjamin Dauvergne <bdauvergne@entrouvert.com>
Date:   Thu Sep 16 19:16:40 2021 +0200

    add uwsgidecorators module (#57019)

commit 7817af0ded860f0a170d412b067f2c5302f72f17
Author: Benjamin Dauvergne <bdauvergne@entrouvert.com>
Date:   Fri Oct 1 15:37:13 2021 +0200

    tests: refactor multitenant conftest (#57019)
#11

Mis à jour par Frédéric Péters il y a environ 2 ans

  • Statut changé de Résolu (à déployer) à Solution déployée
#12

Mis à jour par Transition automatique il y a environ 2 ans

Automatic expiration

Formats disponibles : Atom PDF