Ich benutze Djangos eingebautes Caching mit dem @cache_page
Decorator. Ich möchte jedoch, dass der Cache periodisch automatisch aktualisiert wird, so dass eine Aktualisierung nicht durch eine tatsächliche Seitenanforderung von einem Benutzer ausgelöst wird, was zu einer Verzögerung führt.Auto-Refresh-Cache
Eine offensichtliche Strategie, die in den Sinn kommt, ist die Verwendung einer Sellerie Aufgabe. Ich habe 2 Fragen bitte:
- Wenn der Sellerie-Task-Ansatz akzeptabel ist, welchen Code brauche ich, um a) die Aktualisierung auslösen und für b) eine unbekannte Anzahl von Seiten, z. myapp.com/products/?page=2, myapp.com/products/?page=3 (Ich kann die Anzahl der Seiten nicht vorhersagen)
- Gibt es einen besseren Ansatz?
Ich verstehe das Cache-Timeout. Was ich verhindern möchte, ist eine vom Benutzer initiierte Anforderung, die den Cache aktualisiert, was eine Verzögerung verursacht - ich möchte eine Cacheaktualisierung manuell auslösen. – RunLoop
@RunLoop Ich sehe. Mein Verständnis ist, dass eine Benutzeranforderung den Cache nicht verlängern sollte, es soll 'CACHE_MIDDLEWARE_SECONDS' nach dem Setzen ablaufen, aber wir müssen den Code eingraben, um dies zu bestätigen. Dies ist jedoch ein Problem, wenn Sie dies nicht selbst möchten und es manuell ablaufen lassen müssen. – Wtower