Projet

Général

Profil

Development #13385

Failed to retrieve theme : le cache du thème est basé sur l'URL complète

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

Statut:
Rejeté
Priorité:
Normal
Assigné à:
Catégorie:
-
Version cible:
-
Début:
01 octobre 2016
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:

Description

Il me semble que le header 'X-Combo-Page-Id' a justement été prévu pour cela.


Fichiers

Historique

#1

Mis à jour par Frédéric Péters il y a plus de 7 ans

Non, le X-Combo-Page-Id il sert à ne pas garder en cache n fois le même template.

#2

Mis à jour par Frédéric Péters il y a plus de 7 ans

Pour bien noter les choses pour tout le monde, il s'agit de l'URL (scheme/host/path), sans la query string.

Ici de manière évidente, mais à d'autres endroits précédemment mentionnés, le plus simple ça peut être des modifications à authentic pour mieux jouer avec la mécanique (je pense à #12932).

#3

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

Il me semble quand même que X-Combo-Page-Id pourrait être utilisé pour faire un cache à deux niveaux.

#4

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

  • Statut changé de Nouveau à En cours
#5

Mis à jour par Frédéric Péters il y a plus de 7 ans

Peut-être que j'invente une signification à ce ticket, pour moi je le lisais comme la suite de mon commentaire, comme quoi il y avait eu une trace "failed to retrieve theme" parce que le path de la page demandée contenait un hash et n'avait du coup aucune chance d'être trouvé dans le cache.

(et le patch proposé ne change rien à cela)

Mais peut-être je me trompe sur l'objet du ticket.

#6

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

Effectivement, j'ai été un peu vite en besogne, ma première idée était de rechercher en cas d'absence de cache le cache d'une page préfixe puis je suis partie sur X-Combo-Page-Id en me disant que ça résolvait tout mais ce que j'ai perdu au passage c'est que j'aurai aimé avoir aussi le redirect_url de combo pas seulement l'id de la page pour justement pouvoir rechercher un préfixe. Je vais revoir ma copie.

#7

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

Un nouveau patch avec une idée tout autre, en cas d'update_content() qui foire (j'ai d'ailleurs augmenter les erreurs couvertes avec un try/catch RequestException) on simplifie self.source en remontant d'un niveau dans la hiérarchie des URLs, on s'arrête si le chemin est '/' ou vide.

Ce n'est pas le cas ici je pense mais il est aussi possible que ces erreurs ne soient pas visibles, puisqu'on aura aussi un logger.error() dans un update_content() lancé dans un thread alors qu'un template aura bien été trouvé. J'ai donc aussi déplacé le logger.error() au niveau du Exception('Failed to retrieve theme').

#8

Mis à jour par Frédéric Péters il y a plus de 7 ans

  • Patch proposed changé de Non à Oui
#9

Mis à jour par Frédéric Péters il y a plus de 7 ans

Après un appel à .recurse() on se trouve avec template_body étant un objet Template.

En django 1.8 faire return self.get_template().origin.source rattrape ça mais je ne sais pas pour les autres versions, et ça serait peut-être plus simple de juste diviser get_template(), en get_template() qui ferait Template(...) et un get_template_string().

#10

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

Oui bien sûr c'est même beaucoup plus clair comme ça, au passage j'ai tout renommé autour de cette notion de template body, je trouve que c'est plus lisible.

#11

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

Avec un test, ce qui m'a permis de lever quelques erreurs et aussi de permettre une mise en cache des résultats obtenus par récursion, je ne sais pas si c'est vraiment utile mais au niveau des tests c'est plus parlant.

#12

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

self.cache(template_body)

Mais la méthode a changé de nom, ça devrait être self.cache_template_body.

#13

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

  • Statut changé de En cours à Information nécessaire

Je ne sais pas si ça sert encore à quelque chose...

#14

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

  • Statut changé de Information nécessaire à Rejeté

Formats disponibles : Atom PDF