3 votes

File d'attente des tâches dans Django

J'ai seulement entendu parler d'outils comme Celery, mais je ne sais pas s'ils correspondent à mes besoins et s'ils constituent la meilleure solution possible.

Imaginez un jeu comme Travian. Nous commençons à construire et nous devons attendre N secondes jusqu'à ce que la construction soit terminée. Quand et comment devons-nous terminer la construction ?


Solution 1 : Vérifiez s'il y a une construction active à chaque fois que la page se charge. Si les requêtes de ce type prennent un certain temps, nous pouvons les rendre asynchrones. S'il y en a - alors complétez.

Cependant, de cette manière, nous attendons constamment que l'utilisateur recharge la page. Bien sûr, nous pouvons utiliser un cronjob pour vérifier les constructions à terminer de temps en temps, mais les cronjobs s'exécutent une fois par minute ou moins souvent. Les constructions / attaques etc. doivent être exécutées aussi précisément que possible.


La solution ci-dessus fonctionne, mais présente quelques inconvénients. Quelles sont les meilleures et FIABLE des moyens d'effectuer des actions comme celles que j'ai mentionnées.

De plus, supposons que les ressources doivent être régénérées à X per hour et nous devons les régénérer très précisément et assez souvent. Comment puis-je y parvenir sans attendre que la page soit rafraîchie ?


Enfin, la solution doit fonctionner dans l'hébergement Webfaction ou tout autre hébergement partagé. J'ai entendu dire que Celery ne fonctionne pas sur Webfaction ou je me trompe ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X