Bonjour,
Je vais devoir développer un script d'instant gagnant. Pour l'instant je ne sais pas encore s'il sera du genre "Un gagnant à telle heure", ou "Un gagnant toutes les X tentatives".
Je compte utiliser les fonctionnalités LOCK TABLE de MySQL pour éviter les soucis, pouvez-vous me confirmer qu'il s'agit de la bonne solution ?
Une fois que le script sera finalisé, que puis-je utiliser pour le faire monter en charge en simulant des participations ?
Page 1 sur 1
Instant gagnant
#1
Posté 14 décembre 2011 - 11:28
#2
Posté 14 décembre 2011 - 11:32
Bonjour,
Je ne pense que ca les LOCK soient une bonne solution.
Si tu bloques ta table, tu vas te retrouver avec des requètes en attente de Unlock, et qui vont saturer ton serveur.
Dans le cas du 'un gagnant à telle heure' ou 'un toutes les heures', je mettrais un timestamp sur la table,
et après il sera facile d'aller chercher la liste des joueurs de telle heure à telle heure (de tel timestamp à tel autre),
ce qui te permettra de traiter les 2 cas de gagnants.
++ !
Je ne pense que ca les LOCK soient une bonne solution.
Si tu bloques ta table, tu vas te retrouver avec des requètes en attente de Unlock, et qui vont saturer ton serveur.
Dans le cas du 'un gagnant à telle heure' ou 'un toutes les heures', je mettrais un timestamp sur la table,
et après il sera facile d'aller chercher la liste des joueurs de telle heure à telle heure (de tel timestamp à tel autre),
ce qui te permettra de traiter les 2 cas de gagnants.
++ !
#3
Posté 14 décembre 2011 - 11:55
Et comment faire en cas de timestamps égaux ? On sélectionne celui qui a l'ID le moins élevé ?
#4
Posté 14 décembre 2011 - 12:07
Le problème des timestamp égaux n'intervient pas à ce niveau :
Les timestamp servent à créer une plage horaire, ce qui te permet de dire : telles personnes peuvent ou pas, participer au jeu,
mais ne servent pas à départager le gagnant. Pour cela, effectivement il te faut quelque chose d'unique :
- au pire, tu peux utiliser un micro-timestamp ( microtime() ) qui te sort un temps en microsecondes, mais ne garantit pas l'unicité,
- au mieux tu devrais te servir de l'id incrément de la table : Lui est vraiment unique.
Nico
Les timestamp servent à créer une plage horaire, ce qui te permet de dire : telles personnes peuvent ou pas, participer au jeu,
mais ne servent pas à départager le gagnant. Pour cela, effectivement il te faut quelque chose d'unique :
- au pire, tu peux utiliser un micro-timestamp ( microtime() ) qui te sort un temps en microsecondes, mais ne garantit pas l'unicité,
- au mieux tu devrais te servir de l'id incrément de la table : Lui est vraiment unique.
Nico
Partager ce sujet :
Page 1 sur 1




Haut










