L'idéal serait de gérer les évènements dans une file prioritaire : à chaque chargement de page, on regarde la file des évènements impliquant le joueur.
Pseudo-code :
L'avantage c'est que non seulement on est sûr de traiter correctement tous les évènements sans jamais avoir besoin de cron, mais en plus on peut aussi gérer le cas où un évènement passé génère un autre évènement plus récent mais quand même déjà passé (ça peut vite être problématique parfois, suivant la structure adoptée). Le gros problème c'est que 1/pas de structure toute faite en php pour stocker des séquences auto-triées, et 2/lourd à récupérer et à sauvegarder.
EDIT : l'inconvénient n°1 n'est apparament plus vrai depuis php 5.3.0 (cf. php.net, classe SplPriorityQueue).... mais on fait comment si comme moi on est coincé à php 5.2.6 pour probablement encore très longtemps ?
Pseudo-code :
Code :
file = récupérer la liste des évènements impliquant le joueur
tant que file pas vide, faire
évènement = prendre premier élément de file
si évènement.date > maintenant, quitter la boucle
mettre à jour paramètres continus
traiter évènement
fin tant que
mettre à jour paramètres continus
L'avantage c'est que non seulement on est sûr de traiter correctement tous les évènements sans jamais avoir besoin de cron, mais en plus on peut aussi gérer le cas où un évènement passé génère un autre évènement plus récent mais quand même déjà passé (ça peut vite être problématique parfois, suivant la structure adoptée). Le gros problème c'est que 1/pas de structure toute faite en php pour stocker des séquences auto-triées, et 2/lourd à récupérer et à sauvegarder.
EDIT : l'inconvénient n°1 n'est apparament plus vrai depuis php 5.3.0 (cf. php.net, classe SplPriorityQueue).... mais on fait comment si comme moi on est coincé à php 5.2.6 pour probablement encore très longtemps ?
html, javascript, blagues, midi, etc. => http://quentinc.net/