/ / Asynchroner Datenabruf und Cache-Handling - Django, Sellerie, Django-Sellerie, Django-Cache

Asynchrones Datenholen und Cache-Handling - Django, Sellerie, Django-Sellerie, Django-Cache

Ich habe vor, eine dynamische Site bereitzustellenIch brauche bestimmte Aufgaben, die regelmäßig im Hintergrund ausgeführt werden müssen, etwa alle zwei bis drei Stunden. Die Daten, die ich ausgeben muss, hängen stark vom Ergebnis dieser Abfragen ab.

Das Problem ist nun, dass diese Aufgaben einebestimmte Zeit, z.B. 8-10 Minuten: Wenn ein Benutzer nach einer Seite fragt und daher eine bestimmte Ansicht aufgerufen wird und diese Aufgabe noch läuft, wird alles schief.

Also hier ist die Frage: Was muss ich implementieren, um dieses Problem zu lösen? Ich habe gesucht und habe etwas über Sellerie gefunden, aber ich habe nicht verstanden, wie man das obige Problem beheben und vielleicht ein Caching-System implementieren kann, das eingreift, wenn die Aufgaben noch nicht abgeschlossen sind.

Antworten:

2 für die Antwort № 1

Eine Lösung kann folgende sein: Die Ansicht liefert zwischengespeicherte Ergebnisse. Wenn eine Aufgabe abgeschlossen ist, aktualisiert diese die zwischengespeicherten Ergebnisse mit den neuen. Sie können Sellerie auch auf diese Weise hier verwenden, wenn eine zwischengespeicherte Ansicht getroffen wird und diese neu berechnet werden muss, wird eine Sellerieaufgabe getrennt (die Ansicht gibt den zwischengespeicherten Wert zurück).

Hier ist ein interessantes Beispiel für eine einmalige Sellerieaufgabe: http://ask.github.com/celery/cookbook/tasks.html