Benutzerdefinierte AEM Dispatcher-Invalidierungsskripte
Als Adobe die Änderung vornahm, um mit der Verwendung als Verzeichnis zu beginnen etc.clientlibs
, traten Probleme mit einigen vorhandenen Konfigurationen für die Invalidierung des Dispatcher-Cache auf. Bei bestimmten Cache-Dateien löscht der Dispatcher möglicherweise die Datei auf der Festplatte, wenn eine Leerung aufgerufen wird. Verzeichnisse sollten nicht gelöscht werden, und der Dispatcher legt eine .stat
Datei darin. Das .stat
Der Zeitstempel der Datei ist das, was der Dispatcher überprüft, wenn er entscheidet, ob die angeforderte Cache-Datei aktualisiert werden soll oder nicht.
Wegen dieser lästigen .
-Zeichen innerhalb des Namens des Client-Bibliotheks-Caches wurde der Dispatcher getäuscht, indem er glaubte, dass der Cache (etc.clientlibs
) sollte bei Ungültigkeit von /etc
Dateien gelöscht werden. Dies führte zu weiteren Problemen, wenn versucht wurde, das Verzeichnis neu zu erstellen. Bei der nächsten Anforderung kann es aufgrund einer Racebedingung nicht möglich sein, das etc.clientlibs
Verzeichnis auf Dateisystemebene zu erstellen. Somit wurden keine zwischengespeicherten Clientbibliotheken erstellt, und bis dies manuell behoben wurde (das Verzeichnis von Hand neu erstellen), trafen alle Anforderungen auf die Verleger.
Um dies zu beheben, haben wir ein Shell-Skript geschrieben, das vom Dispatcher während der Invalidierung ausgelöst wurde. Um das Skript aufzurufen, haben wir unserer Dispatcher-Konfiguration Folgendes hinzugefügt:
/invalidateHandler "/opt/dispatcher/scripts/invalidate.sh"
[1]
Dies führte unser invalidate.sh
[2] -Shell-Skript jedes Mal aus, wenn der Cache unseres Dispatchers von einem Flush-Agenten ungültig gemacht wurde, wodurch eine Neuerstellung des etc.clientlibs
Verzeichnisses ausgelöst und unsere Race-Bedingung verhindert wurde.
[1] https://gitlab.arbory.digital/arbory-digital-public/aem-dispatcher-public/blob/master/etc/httpd/conf.d/invalidate.inc#L14
[2] https://gitlab.arbory.digital/arbory-digital-public/aem-dispatcher-public/blob/master/opt/dispatcher/scripts/invalidate.sh
Podcast-Episoden

So wählen Sie eine Digital Experience Platform aus
Arbory Digital hat jetzt einen technischen AEM Podcasts! Raf & Tad gehen der Frage nach, wie Sie die richtige Digital-Experience-Plattform finden

Ist selbst gehostetes Aem immer noch ein Ding?
Ist es trotzdem möglich (oder ratsam), Adobe Experience Manager außerhalb von Adobe zu hosten? Tad Reeves und Joey Smith legen los!

Adobe Summit 2023 – Neuerscheinungen und Konferenzrückblick
Tad Reeves und Hank Thobe berichten über ihre Erfahrungen auf dem Adobe Summit 2023. Wir schauen uns die Ankündigungen des Gipfels an und vieles mehr!