Bonjour,
Alors voila, je me pose une question et préfère avoir votre avis avant de me lancer la dedans parce que c'est assez complexe.
Pour optimiser un cms, je suis en train de réécrire tout le code.
Le seul module restant a refondre est celui des statistiques (nombre de pages vues / connexions / mois)
Actuellement et comme sur beaucoup de sites, la démarche actuelle est de faire une petite requête sql a chaque page en incrémentant une valeur, rien de bien compliqué en somme.
Ce que je désirerais faire maintenant est un tout nouveau système basé sur les sessions.
J'incrémente une valeur dans la session, et quand l'utilisateur se déconnecte -> je met a jour dans la BDD.
Ça c'est la théorie, parce que dans les faits, peu d'utilisateurs se déconnectent; ils ferment plutot leur navigateur ce qui a pour effet de laisser la session a l'abandon en attendant le garbage collector.
Le "hic" est que l'on n'a pas du tout accès a ce processus qui est de plus lancé aléatoirement, donc aucun moyen de vider les sessions de leurs variables et de les passer en BDD.
Je pensais donc faire quelque chose dans ce genre la :
1) Mettre le session.gc_probability à 0 -> Evite que le garbage collector se mette en route.
2) Creer un script exécuté toutes les x heures qui effectuerait ceci :
* - Lister le contenu du repertoire qui contient les sessions pour récuperer tous les identifiants de sessions
* - Vérifier a l'aide des dates de créations des fichiers si la session est périmée ou non
* - Envoyer une requete HTTP vers une de mes pages en fournissant l'id des sessions périmées, comme si il venait d'un cookie
Avec ca, théoriquement, la page php appelée aurait accès a la session, et je pourrais donc vider mes variables avant de faire un session_destroy().
Vous en pensez quoi ? Possible or not ? ^^ (Si vous avez des autres idées, je suis prenneur ...)
Merci d'avance !







Répondre avec citation
Partager