Project

General

Profile

Actions

Bug #113967

closed

utiliser le cache des objets lors de la résolution des dépendances

Added by Benjamin Dauvergne 16 days ago. Updated 12 days ago.

Status:
Solution déployée
Priority:
Normal
Target version:
-
Start date:
24 January 2026
Due date:
% Done:

0%

Estimated time:
Patch proposed:
No
Planning:
No

Description

https://sentry.entrouvert.org/organizations/entrouvert/issues/8224/
La majorité du temps (en tout cas pour ce cas particulier) vient de :

8139    0.034    0.000   26.140    0.003 misc.py:1351(get_dependencies_from_template)

via:
     3342    0.004    0.000   26.130    0.008 formdef_base.py:862(get_by_urlname)

De grandes chances que l'ajout d'un use_cache=True à un get_by_urlname améliore les choses.

Timeout: null
  File "hobo/middleware/harakiri.py", line 24, in middleware
    response = get_response(request)
  File "django/core/handlers/exception.py", line 55, in inner
    response = get_response(request)
  File "hobo/middleware/ping.py", line 11, in __call__
    return self.get_response(request)
  File "django/core/handlers/exception.py", line 55, in inner
    response = get_response(request)
  File "hobo/middleware/security.py", line 25, in middleware
    response = get_response(request)
  File "django/core/handlers/exception.py", line 55, in inner
    response = get_response(request)
  File "django/utils/deprecation.py", line 134, in __call__
    response = response or self.get_response(request)
  File "django/core/handlers/exception.py", line 55, in inner
    response = get_response(request)
  File "django/utils/deprecation.py", line 134, in __call__
    response = response or self.get_response(request)
  File "django/core/handlers/exception.py", line 55, in inner
    response = get_response(request)
  File "hobo/middleware/maintenance.py", line 83, in __call__
    return self.get_response(request)
  File "django/core/handlers/exception.py", line 55, in inner
    response = get_response(request)
  File "django/utils/deprecation.py", line 134, in __call__
    response = response or self.get_response(request)
  File "django/core/handlers/exception.py", line 55, in inner
    response = get_response(request)
  File "hobo/middleware/common.py", line 9, in __call__
    return super().__call__(*args, **kwargs)
  File "django/utils/deprecation.py", line 134, in __call__
    response = response or self.get_response(request)
  File "django/core/handlers/exception.py", line 55, in inner
    response = get_response(request)
  File "django/utils/deprecation.py", line 134, in __call__
    response = response or self.get_response(request)
  File "django/core/handlers/exception.py", line 55, in inner
    response = get_response(request)
  File "django/utils/deprecation.py", line 134, in __call__
    response = response or self.get_response(request)
  File "django/core/handlers/exception.py", line 55, in inner
    response = get_response(request)
  File "django/utils/deprecation.py", line 134, in __call__
    response = response or self.get_response(request)
  File "django/core/handlers/exception.py", line 55, in inner
    response = get_response(request)
  File "django/utils/deprecation.py", line 133, in __call__
    response = self.process_request(request)
  File "wcs/middleware.py", line 166, in process_request
    return self.get_response(request)
  File "django/core/handlers/exception.py", line 55, in inner
    response = get_response(request)
  File "django/utils/deprecation.py", line 134, in __call__
    response = response or self.get_response(request)
  File "django/core/handlers/exception.py", line 55, in inner
    response = get_response(request)
  File "django/core/handlers/base.py", line 197, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "wcs/api_export_import.py", line 105, in f
    return func(*args, **kwargs)
  File "wcs/api_export_import.py", line 303, in object_dependencies
    for dependency in obj.get_dependencies():
  File "wcs/workflows.py", line 1083, in get_dependencies
    yield from status.get_dependencies()
  File "wcs/workflows.py", line 3302, in get_dependencies
    yield from super().get_dependencies()
  File "wcs/workflows.py", line 2660, in get_dependencies
    yield from action.get_dependencies()
  File "wcs/wf/create_formdata.py", line 722, in get_dependencies
    yield from super().get_dependencies()
  File "wcs/wf/external_workflow.py", line 324, in get_dependencies
    yield from super().get_dependencies()
  File "wcs/workflows.py", line 3406, in get_dependencies
    yield from get_dependencies_from_template(string)
  File "wcs/qommon/misc.py", line 1370, in get_dependencies_from_template
    yield CardDef.get_by_slug(carddef_slug, ignore_errors=True)
  File "wcs/formdef_base.py", line 864, in get_by_urlname
    return cls.get_on_index(
  File "wcs/sql.py", line 2313, in get_on_index
    ob = cls.get(value, ignore_errors=ignore_errors, column=index, **kwargs)
  File "wcs/sql.py", line 4926, in get
    return super().get(id, **kwargs)
  File "wcs/sql.py", line 2287, in get
    cur.execute(sql_statement, parameters)
  File "wcs/sql.py", line 134, in execute
    return super().execute(query, vars)
  File "encodings/utf_8.py", line 15, in decode
    def decode(input, errors='strict'):

Actions #1

Updated by Benjamin Dauvergne 16 days ago

  • Assignee set to Benjamin Dauvergne
Actions #2

Updated by Benjamin Dauvergne 16 days ago

  • Status changed from Nouveau to Solution proposée

🤖 Une pull request concernant ce ticket a été ouverte :

Actions #3

Updated by Benjamin Dauvergne 16 days ago

  • Status changed from Solution proposée to En cours

🤖 Travail initié ou repris dans une pull request :

Actions #4

Updated by Benjamin Dauvergne 16 days ago

  • Status changed from En cours to Solution proposée
Actions #5

Updated by Benjamin Dauvergne 13 days ago

  • Status changed from Solution proposée to En cours

🤖 Travail initié ou repris dans une pull request :

Actions #6

Updated by Benjamin Dauvergne 13 days ago

  • Subject changed from Timeout sur la récupération des dépendances to utiliser le cache des objets lors de la résolution des dépendances
Actions #7

Updated by Benjamin Dauvergne 12 days ago

  • Status changed from En cours to Solution proposée
Actions #8

Updated by Serghei Mihai 12 days ago

  • Status changed from Solution proposée to Solution validée

🤖 Pull request approuvée :

Actions #9

Updated by Benjamin Dauvergne 12 days ago

  • Status changed from Solution validée to Résolu (à déployer)

🤖 Pull request fusionnée :

Actions #10

Updated by Transition automatique 12 days ago

  • Status changed from Résolu (à déployer) to Solution déployée
Actions

Also available in: Atom PDF