gniiiiiiiiiiiiiiii...........
Il va me rendre fou.
Je récapitule :
La page de stats présente un certain nombre de modules.
Pour éviter de recalculer les informations a chaque consultation de la page, les données sont mises en cache et valides pendant 5 heures.
Si les infos sont recalculées à t=0, toute consultation de la page dans les 5 prochaines heures affichera instantanément (ou quasi-instantanément) les données vu qu'elle ne sont pas recalculées et sortent du cache.
Admettons que tu te pointes 5h30 apres le dernier recalcul des données. Le cache date de plus de 5h, il faut donc tout remettre a jour. Ca va faire plus de 300 requetes SQL, ca prend son temps, faut attendre, c'est comme ca.
Par contre une fois que tu t'es tapé les 30 secondes d'attente pour réactualiser tout le bazard, si tu reviens consulter la page avec un autre navigateur, y a plus d'attente, vu que tout a été recalculé et que l'on repart avec le cache pour les 5 prochaines heures.
L'embêtant avec la page de stats c'est que les infos du cache ne sont recalculées que lorsqu'un visiteur consulte la page. C'est pas parce qu'on dit que le cache est valide 5h, que toutes les 5 heures il sera recalculé automatiquement.
Du coup, j'ai donc programmé une tache qui simule le passage d'un visiteur toutes les 6 heures. Comme la fréquence de passage de ce visiteur est plus élévée que la durée de validité du cache, si personne n'est passé entre le moment ou le cache n'est plus valide et le moment ou passe le robot, cela entrainera forcément le recalcul du cache et augmentera la proba que le recalcul long ne se fasse pas pour un "vrai" visiteur.
Par contre, en l'état ca laisse toujours une heure de battement.
ex :
a minuit les stats sont recalculées. Sont donc valides jusqu'a 5h du mat.
Le robot ne passera qu'a 6h du mat. Si un visiteur consulte la page de stats entre 5h et 6h (ou les données ne sont plus valides) c'est donc lui qui va se taper l'attente due a la réactualisation.
Si c'est toujours pas clair, je me pends
Mais surtout ne perds pas de temps a t'agiter avec tes navigateurs, ils fonctionnent a priori correctement.