Suppression des sessions en base de données
#1
Bonjour à tous,

En faisant de nombreux tests, je me suis aperçu que ma table contenant les sessions se rempli rapidement.

Je voulais savoir ce que faites de votre côté ? La nettoyez-vous de temps en temps en supprimant les plus anciens enregistrement ? Si oui, comment procedez-vous (dans le sens vous utilisez du genre une proc stock ?) avec du style une politique de nettoyage. Par exemple, suppression des sessions de plus de trois mois.

Cordialement,
Thierry
Répondre
#2
Que stocke tu exactement dans cette table ? Quel traitement tu effectues avec ces données stockées. Histoire de comprendre la démarche, car bien souvent la solution à un problème relève d'un élargissement du prisme.
Répondre
#3
Perso, je pensais pouvoir me reposer sur les sessions PHP des mutualisés, mais n'ayant pas la main sur la configuration, elles sont bloquées à une durée de 24H... Donc j'ai, de même que toi, un "backup" de ces sessions en BDD.

Pour les purger, c'est simple: chaque session a sa date d'expiration (nativement fournie, juste stockée) une tâche CRON quotidienne se charge de dégager toutes les sessions expirées. Si cela n'était pas fait, alors ces sessions seraient encore actives, même après des mois (oui parce que du coup, je m'économise le test "la session est-elle encore vivante?" quand je la récupère)...

La durée de vie fixée est de l'ordre de la semaine, c'est largement suffisant (un mec qui ne revient pas jouer après une semaine, c'est assez critique...) bien que tu puisses monter à peut-être un mois...
Répondre
#4
Je sais qu'on en a déjà parlé, mais vous mettez quoi en session pour avoir besoin qu'elle ne crève jamais ?
Répondre
#5
arff je ne sais pas si je me suis bien exprimé.
Je parle des enregistrements des sessions stockées en base, et pas nettoyer les sessions "active".
Répondre
#6
@Air Oui, c'est bien cela, une tâche qui nettoie les lignes de la BDD que je juge inutile (donc, celles des sessions expirées, mais cela pourrait être un autre algo).

@niahoo L'id du compte de jeu lié à la session, et quelques données de cache (pseudo et mail dudit compte, bien que le mail, je ne sois plus sûr de l'y avoir mis...)
Répondre
#7
À lire également, il y a pas mal d'infos dans ce topic, plutôt que de réinventer la roue, surtout pour stocker de toutes petites données :

https://www.jeuweb.org/showthread.php?tid=11833
Répondre
#8
Bonsoir,

Encore en rapport avec les sessions. Pour un jeu au tour par tour, rendez-vous l'accès au site impossible et aussi les sessions actives, le temps que le traitement de passage de tour se termine ?
Répondre
#9
Selon moi tu dois différentier le jeu et le site web.

Le jeu est un programme qui tourne sur ton serveur et le site web est un accès qui permet de communiquer avec le jeu. Ce sont deux entités bien séparées.

Le joueur doit pouvoir être connecté au site à tout moment, que son tour soit passé ou non. Même si ce n'est pas à lui de jouer, il doit pouvoir consulter le classement, le résultat de son dernier tour, l'état actuel du jeu, les possibilités qu'il a au prochain tour, etc.

Si c'est un jeu en tour par tour, l'interface du jeu ne doit pas lui proposer de jouer si ce n'est pas à son tour, et s'il génère manuellement une requête de tour, le jeu doit lui répondre « erreur, c'est pas ton tour » ou simplement planter sans, évidemment, modifier l'état du jeu en cours.
Répondre
#10
Merci Niahoo pour ta réponse très clair.
Répondre


Sujets apparemment similaires...
Sujet Auteur Réponses Affichages Dernier message
  Base de données tghpow 9 2 043 04-13-2012, 05:23 PM
Dernier message: srm
  Données sockées en base ou dans un fichier popayan 11 2 634 02-03-2011, 10:47 AM
Dernier message: Anthor
  Quelle base de données pour un jeu web? janeo 16 4 170 02-09-2009, 10:12 AM
Dernier message: Astrea



Utilisateur(s) parcourant ce sujet : 1 visiteur(s)