Mysql
 sql >> Base de données >  >> RDS >> Mysql

Vérifiez quels utilisateurs sont en ligne

La façon dont je le fais est de cingler périodiquement un gestionnaire spécial en utilisant AJAX (une fois toutes les 30 secondes). C'est beaucoup de demandes, donc au lieu de mettre à jour la table des utilisateurs en ligne à chaque fois avec la dernière visite, je mets à jour memcache. Je ne mets à jour l'enregistrement de la base de données que lorsqu'il a 5 minutes de retard sur l'enregistrement Memcache (vous pouvez choisir un délai plus ou moins long en fonction de la charge). Ensuite, une tâche cron supprime les enregistrements obsolètes de la table des utilisateurs en ligne.

Pour vérifier si un utilisateur spécifique est en ligne, je vérifie simplement son enregistrement Memcache. L'erreur n'est jamais supérieure à 30 secondes. La base de données n'a jamais plus de 5 minutes de retard, donc les résultats de la base de données sont également assez précis.

J'utilise également ces requêtes périodiques pour envoyer des événements à l'utilisateur.