12-05-2010, 06:14 PM
Pour ma part, le crontab ne parait utile pour :
- la gestion d'évènements IG non instantanés (attaques/constructions/...)
- la gestion de tache administrative (backup/génération de rapport/...)
En tout cas, je préfère déporter certains calculs au moment nécessaires, les calculs sont pas forcement plus compliqué mais il seront moins fréquents.
Pour reprendre, l'exemple de la gestion des ressources :
Entre faire une requete toutes les X minutes ou faire la même requête qu'au moment nécessaire, le choix est vite pris. Mais bon, après chacun est maitre de son code. D'autant plus que si tu utilises un CRON, ca voudrait dire que tu ne produis pas de ressource entre 2 exécutions de requêtes. Ca peut être un choix de game play ^^
Au niveau du serveur, la charge sera moins importante car moins de requêtes , la complexité de la requête ne changeant pas.
avec X=3600 ou X=2, le temps d'exécution sera le même. Avec cet exemple, tu gagnes environ 1800 requêtes (ce qui n'est pas négligeable).
J'ai pris volontairement une requête simple, mais avec une requête plus compliquée, il faudra peut être faire un benchmark.
Faut il mieux mettre à jour en 1 seule fois toutes les ressources de tous les joueurs toutes les X minutes/heures ou faire à la demande une requête pour mettre à jour les infos pour un seul membre, sachant que plusieurs membres peuvent faire la demande en même temps.
Pour ma part, je ferai la requête au besoin. A la création de l'évènement si on a besoin de savoir la faisabilité de celui-ci, et/ou à l'exécution de celui-ci, si cela à une incidence.
Ex:
Construction d'une unité : Requête avant
Attaque d'une cible : Requête au moment de l'exécution de l'évènement affairant
Construction/Recherche modifiant la productivité : Requêtes avant pour valider la construction/recherche et requête au moment de la réalisation de l'évènement (calcul de la production pendant l'évènement puis mis à jour de l'équation permettant de calculer la production)
Je ne sais pas si je suis clair ou pas, mais bon, c'est ce que je ferai (en tout cas, c'est comme ça que j'y ai réfléchi)
- la gestion d'évènements IG non instantanés (attaques/constructions/...)
- la gestion de tache administrative (backup/génération de rapport/...)
En tout cas, je préfère déporter certains calculs au moment nécessaires, les calculs sont pas forcement plus compliqué mais il seront moins fréquents.
Pour reprendre, l'exemple de la gestion des ressources :
Entre faire une requete toutes les X minutes ou faire la même requête qu'au moment nécessaire, le choix est vite pris. Mais bon, après chacun est maitre de son code. D'autant plus que si tu utilises un CRON, ca voudrait dire que tu ne produis pas de ressource entre 2 exécutions de requêtes. Ca peut être un choix de game play ^^
Au niveau du serveur, la charge sera moins importante car moins de requêtes , la complexité de la requête ne changeant pas.
Code :
Update MaTable Set qty=qty+2500*X Where id=5
J'ai pris volontairement une requête simple, mais avec une requête plus compliquée, il faudra peut être faire un benchmark.
Faut il mieux mettre à jour en 1 seule fois toutes les ressources de tous les joueurs toutes les X minutes/heures ou faire à la demande une requête pour mettre à jour les infos pour un seul membre, sachant que plusieurs membres peuvent faire la demande en même temps.
Pour ma part, je ferai la requête au besoin. A la création de l'évènement si on a besoin de savoir la faisabilité de celui-ci, et/ou à l'exécution de celui-ci, si cela à une incidence.
Ex:
Construction d'une unité : Requête avant
Attaque d'une cible : Requête au moment de l'exécution de l'évènement affairant
Construction/Recherche modifiant la productivité : Requêtes avant pour valider la construction/recherche et requête au moment de la réalisation de l'évènement (calcul de la production pendant l'évènement puis mis à jour de l'équation permettant de calculer la production)
Je ne sais pas si je suis clair ou pas, mais bon, c'est ce que je ferai (en tout cas, c'est comme ça que j'y ai réfléchi)