L'exemple le plus proche de mon cas est une application de chat Django ajax. Les salles ont besoin de garder une liste des utilisateurs actifs. Outre l'affichage de cette liste d'utilisateurs dans le chat, une salle donnée peut avoir un nombre maximum d'utilisateurs actifs ; les nouveaux utilisateurs doivent être bloqués s'il n'y a pas de salle.
Actuellement, la page du client de chat appelle une vue de sondage toutes les secondes via ajax. La vue sondage renvoie le texte de la pièce. Je pense que poll peut aussi faire un certain type de ping -- ajouter des utilisateurs à un champ M2M active_user sur l'objet Room (j'ai tout cela en place jusqu'à présent). Ce dont j'ai besoin ensuite, c'est de quelque chose qui supprime les utilisateurs de cette liste active_user après un certain délai.
J'imagine qu'il y a deux façons de procéder, et je me demande laquelle serait la plus efficace pour une application qui doit être précise à la seconde près (ou à dix/quinze secondes près) :
- Utilisation de cookies / sessions / middleware à la ce fil (toutefois, il me semble que cette méthode ne fonctionnerait pas pour les informations instantanées).
- Un autre modèle, tel qu'une table explicite Users_Rooms 'through' avec un champ date-heure pour l'heure qui est mis à jour lors de la création et à chaque ping suivant, et écrivez une fonction qui nettoie les anciens modèles.
C'est tout ce à quoi je peux penser. J'essaie juste de savoir si frapper mySQL toutes les secondes pour chaque utilisateur et pour chaque pièce est une bonne idée, et je me demande si cette seconde est bien la date limite pour l'utilisation de mySQL. meilleur pour la tâche. Merci !