Bonjour,
Je viens de me rendre compte d'un détail qui peut avoir un impact négatif assez important sur les performances d'un serveur :
la balise #SPIP_CRON insère le code
<!-- SPIP-CRON --><div style=“background-image: url(‘http://domaine/spip.php?action=cron’);”></div>
Le problème vient du fait que "domaine" est en fait le domaine utilisé au moment de l'appel à la balise, le résultat est mis en cache, généralement dans le pied de page avec un délai assez long car on ne change pas son contenu tous les jours.
Ca n'aurait normalement aucune conséquence, mais j'ai remarqué grâce à job_queue que, quand le recalcul du pied de page tombait sur un domaine alternatif de mon site (utilisé pour une zone restreinte en nombre de pages et de visites), les appels au cron depuis une page du domaine principal ne passaient plus !
Résultat : une file d'attente qui se remplit plus vite qu'elle arrive à se vider (en raison du différentiel de visites domaine principal / domaine alternatif), et parfois apache qui s'emballe.
Solution trouvée : j'ai sorti SPIP_CRON du pied de page pour le mettre dans tous mes squelettes de base (j'ai essayé de différencier le pied dans le cache en fonction du domaine utilisé en passant en paramètre {domaine=#EVAL{$_SERVER['HTTP_HOST']}}, mais ça n'a pas marché malgré un appel explicite à #ENV{domaine} pour imprimer un commentaire html dans le pied de page inclus. Pourquoi ? Je ne sais pas)
Ne serait-il pas préférable que le calcul de la balise renvoie un chemin absolu depuis le document_root sans expliciter le domaine ?
A bientôt
Simon