JeuWeb - Crée ton jeu par navigateur
Suppression des sessions en base de données - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Suppression des sessions en base de données (/showthread.php?tid=7864)



Suppression des sessions en base de données - Air - 15-08-2017

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


RE: Suppression des sessions en base de données - incodewetrust - 15-08-2017

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.


RE: Suppression des sessions en base de données - Xenos - 15-08-2017

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...


RE: Suppression des sessions en base de données - niahoo - 15-08-2017

Je sais qu'on en a déjà parlé, mais vous mettez quoi en session pour avoir besoin qu'elle ne crève jamais ?


RE: Suppression des sessions en base de données - Air - 16-08-2017

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".


RE: Suppression des sessions en base de données - Xenos - 16-08-2017

@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...)


RE: Suppression des sessions en base de données - niahoo - 16-08-2017

À 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


RE: Suppression des sessions en base de données - Air - 16-08-2017

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 ?


RE: Suppression des sessions en base de données - niahoo - 17-08-2017

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.


RE: Suppression des sessions en base de données - Air - 18-08-2017

Merci Niahoo pour ta réponse très clair.