2010-11-18 3 views
3

Ich erstellte eine iPhone-Anwendung, die Benachrichtigungen zu einem benutzerdefinierten Zeitpunkt erhalten möchte. Die Backend-Django-Anwendung verfügt über eine Warteschlange mit Ereignissen mit Datumsangaben, an die die Ereigniserinnerung an den iPhone-Client gesendet werden soll. Das ist das wie ein Watch Alert von eBay; Wenn die Gebotsfrist eines beobachteten Artikels kurz vor dem Schließen steht, sendet Ihnen eBay eine Nachricht, die Sie daran erinnert.Brennen von Benachrichtigungen zu bestimmten Zeiten in Django

Was ist der beste Weg, dies auf dem Backend mit Django zu implementieren? Ich zögere, cron zu benutzen, weil es eine große Anzahl von Ereignissen geben wird, und ich möchte für jedes Ereignis keinen Cron-Job planen. Außerdem möchte ich das Modell des Ereignisbenachrichtigungssystems verwenden (gerne einen Adapter verwenden), um die Ereigniswarteschlange zu verwenden. Wenn ein Ereignis entfernt oder aktualisiert wird, verwendet das Ereignisbenachrichtigungssystem keine veralteten Modelldaten.

Antwort

5

cron ist das richtige Werkzeug dafür, aber Sie möchten keinen separaten Cron-Eintrag für jedes Ereignis. Stattdessen sollte Cron ein Django-Skript auslösen, das die Datenbank auf fällige Benachrichtigungen prüft und sie auslöst.

3

Sie möchten vielleicht Sellerie und seine periodic scheduled tasks betrachten. Dann könnten Sie die Aufgaben direkt aus Ihrem Python-Code heraus planen, ohne für jeden einzelnen einen Crontab-Eintrag hinzufügen zu müssen.

Verwandte Themen