2010-12-15 10 views
0

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?

Antwort

1

Ich weiß nicht, ob es der beste Weg ist, aber normalerweise richten Sie cron Jobs auf diese Art von Dingen.

Ihr Cron-Job wäre ein einfacher PHP-Skript sein, würde es die Datenbank abfragen, alle Benutzer zu finden, dass das System E-Mails usw. verarbeiten und senden ...

Wenn Sie unter Windows der geplante Aufgabe sind, sollte sein ein Ersatz für Cron-Jobs.

+0

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

+1

@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

+0

andere Alternativen als Cron-Jobs verwenden? – samxli

Verwandte Themen