Ich habe eine Datenbank voller Benutzer und jeder Benutzer hat Zeitstempel für bestimmte Ereignisse, die sie ausgeführt haben. Ich möchte eine Aktion für jeden einzelnen Benutzer basierend auf ihren Zeitstempeln auslösen. So zum Beispiel: user1 hat sich seit 5 Tagen nicht mehr angemeldet, schickt ihr eine E-Mail oder setzt ihren Benutzerstatus in den "Leerlauf" -Modus.Benutzerspezifische Timer-Aktionen in einer MySQL-Datenbank
Was wäre der beste Weg, dies zu tun?
Wenn ich alle 5 Tage einen Cron-Job habe und der Benutzer sich mitten in diesen 5 Tagen anmeldet, dann gibt es eine Verzögerung zwischen ihrem offiziellen Event-Feuern und dem Cron-Job, der tatsächlich das Event feuert. Es sei denn, ich führe den Cron Job häufiger als alle 5 Tage. Aber wenn ich die Zeitintervalle in Minuten und nicht in Tagen machen würde, würde das nicht viel Verarbeitung erfordern? Gibt es einen Benutzer-Listener, den ich einrichten kann, ohne ein Skript auszuführen, das die gesamten Benutzerdatensätze überprüft? Am Ende ist mein Hauptanliegen Leistung. – samxli
@samxli: Ich weiß nicht, wie viele Benutzer Sie haben, ich würde den Job jeden Tag einrichten und sicherstellen, nur die Teilmenge von Benutzern zu verarbeiten, die ich brauche. Wenn Sie sehen, dass Ihre Cron-Jobs zu lang werden, können Sie über eine andere Lösung nachdenken. Nach dem Cron-Job müssten Sie Ihren eigenen Daemon erstellen und das wäre viel komplizierter. – RageZ
andere Alternativen als Cron-Jobs verwenden? – samxli