Projet

Général

Profil

Bug #74449

confusion de cache de sources de données utilisant la même url mais un paramétrage différent

Ajouté par Frédéric Péters il y a environ un an. Mis à jour il y a environ un an.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
13 février 2023
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Non
Planning:
Non

Description

De https://gitea.entrouvert.org/entrouvert/passerelle/pulls/105 ,

[...] parce qu'il y a du cache sur l'objet request de w.c.s qui fait que l'on ne peut pas utiliser dans le même formulaire 2 sources de données différentes, servies par la même url, utilisant un dictionnaire (paramètre data) différent.

Révisions associées

Révision b0f026a1 (diff)
Ajouté par Frédéric Péters il y a environ un an

misc: include data source parameters in cache keys (#74449)

Historique

#1

Mis à jour par Nicolas Roche il y a environ un an

  • Description mis à jour (diff)

Pour les sources de données, l'url avec ses variables interprétées est mise en cache et resservie.
On ne peut pas faire 2 source de données différentes servies par la même url en tapant à 2 endroits différents dans le json.
cf :

  def _get_structured_items(data_source, mode=None, raise_on_error=False):
  ...
    url = get_variadic_url(url, vars)
  ...
    request = get_request()
    if hasattr(request, 'datasources_cache') and url in request.datasources_cache:
       return request.datasources_cache[url]
  ...
    if hasattr(request, 'datasources_cache'):
       request.datasources_cache[url] = items

On peut tester sur ce formulaire :
https://demarches-parsifal.test.entrouvert.org/backoffice/forms/204/

#2

Mis à jour par Frédéric Péters il y a environ un an

Pour les sources de données, l'url avec ses variables interprétées est mise en cache et resservie.

Pour poser les choses : le problème est que ce qui est mis en cache n'est pas ce qui est présent à l'URL en question mais ce qui aura été retourné par request_json_items(), qui est une fonction qui applique des paramètres supplémentaires, qui peuvent varier d'une source de données à l'autre, pour la même URL. Ça pourrait venir après #39723 qui a déplacé partiellement les niveaux de cache. Comme piste peut-être aveoir avoir une fonction de calcul d'une clé de cache, qui prendrait davantage que l'URL.

#3

Mis à jour par Frédéric Péters il y a environ un an

  • Assigné à mis à Frédéric Péters
#4

Mis à jour par Robot Gitea il y a environ un an

  • Statut changé de Nouveau à Solution proposée

Frédéric Péters (fpeters) a ouvert une pull request sur Gitea concernant cette demande :

#5

Mis à jour par Robot Gitea il y a environ un an

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

Agate Berriot (aberriot) a approuvé une pull request sur Gitea concernant cette demande :

#6

Mis à jour par Robot Gitea il y a environ un an

  • Statut changé de Solution validée à Résolu (à déployer)

Frédéric Péters (fpeters) a mergé une pull request sur Gitea concernant cette demande :

#7

Mis à jour par Transition automatique il y a environ un an

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

Mis à jour par Transition automatique il y a environ un an

Automatic expiration

Formats disponibles : Atom PDF