Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Überprüfen Sie, welche Benutzer online sind

Ich pinge regelmäßig einen speziellen Handler mit AJAX (einmal in 30 Sekunden). Das sind eine ganze Menge Anfragen, also aktualisiere ich Memcache, anstatt die Online-Benutzertabelle jedes Mal mit last-visit zu aktualisieren. Ich aktualisiere den Datenbankeintrag nur, wenn er 5 Minuten hinter dem Memcache-Eintrag liegt (Sie können je nach Auslastung eine größere oder kleinere Verzögerung auswählen). Dann entfernt ein Cron-Job veraltete Datensätze aus der Online-Benutzertabelle.

Um zu überprüfen, ob ein bestimmter Benutzer online ist, überprüfe ich einfach seinen Memcache-Eintrag. Der Fehler ist nie länger als 30 Sekunden. Die Datenbank liegt nie mehr als 5 Minuten zurück, daher sind die Ergebnisse aus der Datenbank auch ziemlich genau.

Ich verwende diese regelmäßigen Anfragen auch, um Ereignisse an den Benutzer weiterzuleiten.