2014-08-27 2 views
0

La classe User a une colonne Energy, un nombre qui plafonne à 30. Toutes les 10 minutes, chaque objet User doit régénérer 1 énergie. Quel est le meilleur moyen d'obtenir cette fonctionnalité? En guise de bonus, existe-t-il un moyen de faire en sorte que chaque utilisateur ait son propre minuteur, de sorte qu'il commence à compter 10 minutes dès qu'il utilise sa première énergie après avoir été plafonné?Parse.com - Remplir régulièrement l'énergie

Actuellement intéressé par Parse.com, et je suppose que le code de nuage doit être utilisé. Merci!

Répondre

1

À moins qu'il ya une bonne raison pour cela, ne pas essayer de mettre la logique de jeu dans votre base de données. Surtout n'essayez pas d'architecturer une solution où vous devez exécuter des milliers de minuteurs sur votre serveur.

Le code minuteur appartient au client. La façon dont je l'implémenterais est de stocker la dernière date/heure où ils ont de l'énergie et quand une minuterie se déclenche dans l'application comparez "maintenant" à cela et ajoutez autant d'énergie que nécessaire, en stockant la nouvelle date/heure de la limite de 10 minutes la plus récente.

Cette logique traiterait également l'application étant endormi/fermé pendant ce temps, il suffit d'appeler le même code au démarrage de l'application.

Si la sécurité est un problème puis stocker les données pour calculer cette sécurité et de mettre cette logique en fonction des nuages, mais toujours la minuterie qu'il appelle dans le client.

La fréquence à laquelle vous utilisez cette méthode dépend de vous. Vous pouviez tirer à chaque seconde si vous le vouliez vraiment et cela ne ferait qu'ajouter de l'énergie toutes les 10 minutes.

+0

Merci, Timothy! Je suis également arrivé à cette conclusion hier, et j'ai rédigé un pseudo-code pour commencer. Merci encore pour tous vos bons conseils! – Pixelsage

0

code-Cloud peut aider si vous écrivez un emploi que vous pouvez exécuter toutes les 10 minutes, mais il se limite à ce que vous pouvez faire. Premièrement, le Job ne peut durer que 4 secondes au maximum, ce qui signifie qu'il ne sera pas possible de mettre à jour une grande liste d'Utilisateurs en utilisant le Cloud Code.

La meilleure solution serait d'écrire un script que vous pouvez appeler sur votre serveur toutes les 10 minutes, par exemple un cronjob.

En utilisant Parse, vous pouvez vérifier un horodatage dans la classe et récupérer tous les utilisateurs qui ont besoin de leur énergie mis à jour. Le script parcourrait ensuite cette liste et mettrait à jour leur énergie de 1. Planifiez l'exécution du script toutes les minutes, afin que l'énergie soit mise à jour à la minute près après utilisation.

+0

Il n'y a rien de limité à 4 secondes. Job = 15 minutes. Fonction = 15 secondes Trigger (par exemple beforeSave) = 3 secondes. https://parse.com/docs/cloud_code_guide#functions-resource –

+0

Je me suis corrigé sur les temps d'exécution. Il conseille toujours de créer un script pour faire la mise à jour. –