Mise en cache pour les listes de sujets de balises ?

Les routes de balises comme /tag/featured.json doivent-elles être mises en cache ? Il semble qu’elles exécutent 29 requêtes SQL à chaque chargement de page, alors que cette balise a une fréquence de mise à jour très faible. Comme je mène une campagne pour réduire la charge CPU de notre serveur, il serait idéal de pouvoir la mettre en cache pendant 10 minutes environ (ou encore mieux : la mettre en cache jusqu’à ce que nous appliquions cette balise à un nouveau sujet).

1 « J'aime »

Cette question est-elle liée au composant des vignettes de la liste des sujets, ou pouvons-nous la déplacer ailleurs ?

29 requêtes SQL ne semblent pas particulièrement inhabituelles. Nous disposons bien d’une mise en cache au niveau de la page entière, mais elle ne s’applique qu’aux utilisateurs anonymes, pas aux utilisateurs connectés. Nous ne pouvons pas facilement mettre en cache les listes de sujets pour les utilisateurs connectés, car chaque utilisateur voit des informations différentes en fonction de son appartenance à des groupes, de ses préférences, de son état de lecture, etc.

2 « J'aime »

Désolé, je l’ai rencontré dans le contexte de Homepage Feature TC, pas celui-ci :facepalm: C’est probablement mieux en tant que sujet indépendant, oui.

1 « J'aime »

:+1: déplacé

Ah, je vois. Cette requête tag/featured.json est donc effectuée à chaque fois que quelqu’un consulte votre page d’accueil.

Malheureusement, nous n’avons aucun moyen pour que les composants de thème modifient les données envoyées dans la véritable requête de la page d’accueil. C’est pourquoi le composant Homepage Feature doit effectuer une requête HTTP distincte.

2 « J'aime »

Bon, la requête est correcte, ce serait juste super si elle utilisait la version anonyme (cette liste est/doit être la même pour tout le monde).

En lien indirect : j’essaie de faire en sorte que cela liste les tags par date de balisage et non par date de ‘dernière mise à jour/réponse’, car cela fausse l’ordre de mes sujets en vedette. Je vais essayer de bidouiller un JSON statique externe pour cela et voir comment ça se passe.

1 « J'aime »