Doppia elica decorativa

Script di annullamento validità personalizzati di AEM Dispatcher

Quando Adobe ha apportato la modifica per iniziare a utilizzarla etc.clientlibs come directory, abbiamo riscontrato problemi con alcune configurazioni esistenti di annullamento della validità della cache di Dispatcher. Per alcuni file di cache, Dispatcher può eliminare il file su disco quando viene chiamato uno svuotamento. Le directory non devono essere eliminate e Dispatcher rilascerà un .stat file al loro interno. Questo .stat Il timestamp del file è ciò che Dispatcher controlla quando decide se aggiornare o meno il file di cache richiesto.

Tuttavia, a causa di quel fastidioso . all'interno del nome della cache della libreria client, il Dispatcher è stato ingannato nel pensare che la cache (etc.clientlibs) deve essere cancellato in caso di invalidazione di qualsiasi /etc file. Ciò causava ulteriori problemi quando tentava di ricreare la directory. Alla richiesta successiva potrebbe non essere in grado di creare la etc.clientlibs directory a livello di file system a causa di una race condition. Pertanto, non verrebbe creata alcuna libreria client memorizzata nella cache e, fino a quando questo problema non viene risolto manualmente (ricrea manualmente la directory), tutte le richieste raggiungono i server di pubblicazione.

Per risolvere questo problema, abbiamo scritto uno script di shell che è stato attivato dal Dispatcher durante l'invalidazione. Per chiamare lo script, abbiamo aggiunto quanto segue alla configurazione del Dispatcher:

/invalidateHandler "/opt/dispatcher/scripts/invalidate.sh" [1]

Questo ha eseguito il nostro invalidate.sh script di shell [2] ogni volta che la cache del nostro Dispatcher è stata invalidata da un agente di svuotamento, innescando così una ricreazione della directory e prevenendo la etc.clientlibs nostra condizione di gara.

[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

Contattaci

Episodi del podcast

Come scegliere una piattaforma di esperienza digitale

Arbory Digital ha ora un AEM Podcast tecnico! Raf & Tad approfondiscono come decidere di avere la giusta piattaforma di esperienza digitale

L'Aem self-hosted è ancora una cosa?

È ancora possibile (o consigliabile) ospitare Adobe Experience Manager al di fuori di Adobe? Tad Reeves e Joey Smith si cimentano!

Adobe Summit 2023 – Nuove uscite e riepilogo della conferenza

Tad Reeves e Hank Thobe ripercorrono la loro esperienza all'Adobe Summit 2023. Esaminiamo gli annunci del Summit e molto altro!