Fonctionnement du cache

Le Refuge est bâti sur le système eZ Publish, qui comporte un système de cache. Explications.


Le cache, késako ?

eZ Publish est un système de gestion de contenu assez complexe qui nécessite beaucoup de traitements informatiques. Le temps de calcul d'une page standard serait de 10 à 15 secondes s'il n'y avait pas ce système de cache.

Comment permet-il de réduire les temps de chargement ?

Tout simplement en conservant un exemplaire déjà calculé de chaque page. Quand deux utilisateurs veulent consulter la même page, elle ne sera calculée que pour le premier utilisateur, le deuxième utilisateur charge quand à lui la version "cachée" et ce, beaucoup plus rapidement.

D'accord, mais quels sont les conséquences ?

Tout l'enjeu d'un système de cache est donc de réduire le nombre de calcul de pages complètes au minimum, tout en assurant que les pages cachées soient fidèles aux pages calculées. Les pages cachées étant indépendantes des données, il est possible que les données de base changent sans que la page cachée ne reflète ce changement.

Quand une donnée change, par exemple quand quelqu'un poste un sujet ou une réponse, le cache de la page associée est invalidé, et sera régénéré au prochain chargement de la page. La page associée, mais aussi le cache de la rubrique le contenant (pour mettre à jour le nombre de réponses), et celui de la rubrique encore au-dessus, et enfin le cache de la page d'accueil.

Tout cela fonctionne très bien, mais il y a des exceptions : La bannière, les colonnes droite et gauche et certaines pages particulières, comme la page "Nouveaux contenus" et "Le Mur du Refuge" ne sont pas gérés de la même manière par le cache. Si dans les deux dernier cas il n'y a pas de cache, ces deux pages étant calculées à chaque affichage, les trois premièrs zones obéissent à des règles différentes.

Le cache des colonnes

Le cache des colonnes droite et gauche est régénéré à chaque fois que n'importe quel contenu est ajouté ou mis à jour dans le site. Cela permet de garder à jour la liste des derniers contenus et la liste des dernières réponses. Mais les messages du mur ne sont pas des contenus standard, du coup le cache des colonnes ne sont pas mis à jour à chaque ajout de message sur le Mur. Ce qui explique l'imprécision de l'affichage "Dernier message sur le mur" et l'inexactitude des mentions "il y a X minutes", car elles sont affichées en prenant comme base la dernière fois que les caches ont été régénérés.

Le lien "Marquer tous les contenus comme lus" ne fonctionne pas !

J'ai bien vu, mais le cache n'est pas en cause, je ne sais pas pourquoi les contenus ne sont pas immédiatement marqués comme lus. Ce que je sais en revanche, c'est qu'un deuxième clic sur ce même lien fonctionne parfaitement.

Laissez un commentaire

21 Commentaires

  • Merci pour les explications Grand Architecte wink Par contre je me demandais, est-ce que les colonnes droite et gauche sont soumises à un délai avant rafraichissement du cache suite à leur invalidation ? Je dis ça parce que typiquement en ce moment la colonne gauche reflète bien ton nouveau topic par contre celle de droite non. A moins que celle de droite ne prenne en compte que les réponses de forum et pas les topics ouf

    EDIT : et c'est bien le cas ma réponse a ce topic a rafraîchit maintenant la colonne de droite.

  • Et de même avec la mienne pour Miss Légume 2010...

    Il faudra prendre l'habitude. wink

  • Vous vous attendiez à une liste comportant sujets ET posts ? Pour moi, dès lors que la colonne de gauche répertorie les sujets, ç'aurait fait doublon que la colonne de droite les liste également. perplexe

    Notez qu'il y a toujours moyen de changer, rien n'est définitif.

  • Je viens de comprendre le fonctionnement du truc à droite... ouf

  • "Dernier commentaires" n'était pas assez explicite ? Qu'est-ce qui ne va pas ? perplexe

  • Justement au début je me disais que c'était bizarre qu'il n'y ait pas les topics dans la barre de droite mais après j'ai vu effectivement "derniers commentaires" et là effectivement cela devint assez logique (c'est pourquoi je n'ai pas crié au loup smile).

    Logique et pourtant j'ai l'impression que ça cloche, quand on regarde au premier abord j'ai l'impression que ce n'est pas comme ça que cela devrait fonctionner. Et pourtant c'est vrai que cela ferait redondance quelque peu avec la colonne de gauche.

  • -

    Salut , c'est la galere impossible de rafraichir le site , il est 9H30 j'ai posté hier a 2H30 et mon post n'apparait nul part

    et il y a toujours mon pseudo d'hier d'affiché , il doit y avoir un truc pas normal je pense a moins qu'il faille faire quelque chose de spécial pour raffraichir ?

    C'est frustrant !

    Suiland ...

    -

    J'édite pour dire que ce post apparait tout de suite sur la colonne de droite alors que celui de cette nuit n'apparait toujours pas .

    J'ai remarqué que les problemes de ce genre apparaissaient toujours dans la boite a idée , il doit y avoir un big blème dedans .

    En plus hier j'ai mis 30 minutes pour réussir a afficher mon image , j'ai failli abandonner .

    Dis moi Ertaii serait il possible de déplacer le topic graphisme que j'ai ouvert :

    http://www.aeriesguard.com/Culture-et-Vie-du-Refuge/Boite-a-idees/Graphisme

    vers le sous forum dessin par exemple .

    Merci d'avance .

    Suiland ...

    -

  • Euh... Ertaïounet ? Pourquoi que mon message il apparait dans la rubrique "Dernier message sur le mur" quand je suis dans un topic et pas quand je suis en dehors ? Je croyais que le cache merdait quelque soit la page ...

  • Je ne sais pas, moi j'ai le même affichage partout perplexe

    Peut-être une ancienne fenêtre que tu n'avais pas fermée avant de valider ton message ?

  • Question Csaül, tu tourne sous quoi ?

  • C'est vrai qu'il avait déjà eu des problèmes uniques à lui-même. Ce doit être un ordinateur Russe. perplexe

  • Ah mais non cette fois c'était pas ma machine, c'était une machine de mon iut, sous XP et sous Firefox dernière version.

  • Suggestion : Un bouton de membre 'régénérer le cache", permettant, de façon complètement bénévole, à un membre de re-charger la page et de régénérer le cache.

  • Non, trop dangereux, étant donné qu'on ne peut pas limiter les droits sur un type précis de cache, ça pourrait mettre le Refuge sur les genoux. frown

  • Comment ça ? Un pirate envoyant des requêtes répétées ? Alors, sinon, tu fais dans le genre, un bouton qui envoie une réponse vide*, qui utilisera donc le protocole normal de réinitialisation du cache et rajouter lors de la génération de la page une suppression du dernier message si il est vide*.

    *Remplaçable par une chaîne de caractère

    Précise le problème, c'est peut-être évitable par un détour astucieux... perplexe:

  • Pas forcément un pirate, mais par exemple un Sbrematqui qui veut qu'à chaque fois qu'il met un message sur le Mur veut qu'il apparaisse dans la colonne de gauche ?

    En plus, avec la mise à jour par Javascript des "il y a X minutes", le rafraîchissement manuel du cache est beaucoup moins utile.

  • Mais tu sais très bien qu'il est facile de limiter cette action à une par session...

  • Oui et il est aussi facile de fermer son navigateur pour démarrer une nouvelle session. wink

    En fait je ne sais pas trop pourquoi tu as besoin de cette fonctionnalité vu que maintenant l'affichage des dates est géré dynamiquement et donc toujours à l'heure ?

  • Il ne reste que l'affichage du dernier message du Mur qui n'est effectivement pas à jour (même si la date affichée est la bonne, par contre razz ).

  • Ben, dans ce cas là, rajoute le bouton seulement dans le mur, et je ne pense pas qu'il vas y avoir des gugus qui vont aller redémarrer leurs navigateur juste pour ça... Si tu crains vraiment des dérives, enregistre la dernière adresse ip (une seule) ayant utilisé ce bouton et vérifie si elle est différente de la précédente...

    En plus, ça permettra de signifier l'originalité d'Aeries en signalant l'existence du cache. wink

    (Et ne me dites pas qu'on mettra un lien inutile qui pourrira l'interface, car ça, ça pue.)

  • Hum, c'est non.

    Ton premier argument requiert trop de travail pour moi pour juste rafraîchir le dernier message du Mur (Astuce : écris sur le mur avant de répondre à un post !), ton deuxième argument ne ferait que confondre les nouveaux arrivants, et ton troisième argument, euh, même si tu trouves que ça pue, ça reste un lien inutile qui pourrit l'interface.

Laissez un commentaire

Vous devez être connecté pour commenter sur le Refuge. Identifiez-vous maintenant ou inscrivez-vous !


Marre des pubs ? Inscrivez-vous !