AEM Dispatcher Cache-Invalidierung mit statfileslevel und gracePeriod
Wenn Sie Adobe Experience Manager (AEM) Dispatcher mit statfileslevel und gracePeriod konfigurieren, ist eine explizite Cache-Leerung für Auflistungsseiten im Allgemeinen nicht erforderlich, wenn sich die Auflistung und der aktualisierte Inhalt im selben .stat Dateibereich befinden. Überprüfen Sie, ob Ihre statfileslevel-Einstellung erfüllt ist, um zu bestätigen, dass beide beachtet werden.
Beschreibung description
Symptome
Der Kunde fragt, ob eine explizite Cache-Leerung (Invalidierungstyp INVALIDATE) für die Auflistung von Seiten erforderlich ist, nachdem der Inhalt mit Typ ADD aktualisiert wurde. Bei /publishfarm/cache/statfileslevel "2" und /publishfarm/cache/gracePeriod "2" werden die Listenseiten anscheinend ohne aktualisiert.
Schritte zur Reproduktion
- Konfigurieren von
/publishfarm/cache/statfileslevel "2"und/publishfarm/cache/gracePeriod "2". - Invalidierung einer Datei unter
.statmit dem TypADD. Das Änderungsdatum der.stat-Datei wird aktualisiert. - Fordern Sie eine Datei an, die innerhalb von 2 Sekunden
/invalidate/../type "allow". Ergebnis:actionhit, Cache unverändert. - Fordern Sie sie nach 2 Sekunden erneut an. Ergebnis:
actionmiss, Cache aktualisiert.
Ursache
ADD aktualisiert den Zeitstempel der .stat. Dateien, die mit allow Regeln übereinstimmen, werden erst dann als ungültig behandelt, wenn seit diesem Zeitstempel gracePeriod sind. Wenn der aktualisierte Inhalt und die Auflistungsseite denselben .stat aufweisen, wird die Auflistung durch denselben Mechanismus ungültig, sodass eine separate INVALIDATE nicht erforderlich ist.
Lösung resolution
Gehen Sie wie folgt vor, um das Problem zu beheben:
- Verstehen Sie das
statfileslevel- undgracePeriod: Wenn dieinvalidate.cacheausgelöst wird (z. B. durch die Veröffentlichung einer Seite), erstellt oder aktualisiert Dispatcher die.stat-Datei am konfiguriertenstatfileslevel. - Bei der nächsten Anfrage für eine zwischengespeicherte Seite vergleicht Dispatcher die Zeitstempel der
.statund der zwischengespeicherten Datei. Wenn die.statDatei neuer ist, wird der Cache ungültig gemacht und der Inhalt wird aus der Veröffentlichungsinstanz abgerufen. - Die
gracePeriod(z. B. 2 Sekunden) verzögert die Cache-Invalidierung für die angegebene Dauer, nachdem die.stataktualisiert wurde. Anfragen innerhalb desgracePeriodgeben den zwischengespeicherten Inhalt zurück (actionhit). Nach demgracePeriodwird der Cache ungültig (actionmiss). - Wenn Ihre Konfigurations-Trigger beim Veröffentlichen einer Seite
invalidate.cacheund sich sowohl der aktualisierte Inhalt als auch seine Auflistung im selben.statDateibereich befinden, ist eine explizite Cache-Leerung für die Auflistungsseite im Allgemeinen nicht erforderlich. Der Eintrag wird nach demgracePeriodautomatisch ungültig gemacht. - Stellen Sie sicher, dass die
statfileslevelsowohl den aktualisierten Inhalt als auch die Auflistungsseite unter derselben.statabdeckt. - Überwachen Sie Protokolle auf Edge-Fälle, in denen
invalidate.cachekontinuierlich ausgelöst wird, da sich der Zeitpunkt der Cache-Invalidierung verschieben kann. Passen SiegracePeriodnach Bedarf an.
Stellen Sie sicher, dass die Cache-Invalidierung nach der gracePeriod erwartungsgemäß erfolgt und dass keine expliziten INVALIDATE erforderlich sind, um Seiten aufzulisten, die sich im selben .stat-Dateibereich befinden.