Doble hélice decorativa

Scripts de invalidación personalizados de AEM Dispatcher

Cuando Adobe realizó el cambio para comenzar a usarlo etc.clientlibs como directorio, encontramos problemas con algunas configuraciones de invalidación de caché de Dispatcher existentes. En el caso de determinados archivos de caché, Dispatcher puede eliminar el archivo del disco cuando se llama a un vaciado. Los directorios no deben eliminarse y Dispatcher eliminará un .stat archivo dentro de ellos. Éste .stat La marca de tiempo del archivo es lo que Dispatcher comprueba al decidir si actualizar el archivo de caché solicitado o no.

Sin embargo, debido a eso molesto . dentro del nombre de la caché de la biblioteca cliente, el Dispatcher fue engañado para que pensara que la caché (etc.clientlibs) debe eliminarse en caso de invalidación de cualquier /etc archivo. Esto causaba más problemas cuando intentaba recrear el directorio. En la siguiente solicitud, es posible que no pueda crear el etc.clientlibs directorio en el nivel del sistema de archivos debido a una condición de carrera. Por lo tanto, no se crearían bibliotecas de cliente almacenadas en caché y, hasta que esto se corrigiera manualmente (volver a crear el directorio a mano), todas las solicitudes llegarían a los publicadores.

Para solucionar esto, escribimos un script de shell que fue activado por Dispatcher durante la invalidación. Para llamar al script, agregamos lo siguiente a nuestra configuración de Dispatcher:

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

Esto ejecutaba nuestro invalidate.sh script de shell [2] cada vez que la caché de nuestro Dispatcher era invalidada desde un Agente de vaciado, lo que desencadenaba una recreación del etc.clientlibs directorio y evitaba nuestra condición de carrera.

[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

Contáctenos

Episodios de podcast

Cómo elegir una plataforma de experiencia digital

¡Arbory Digital ahora tiene un AEM Podcasts técnico! Raf & Tad se sumergen en cómo decidir que tienes la plataforma de experiencia digital adecuada

¿Sigue existiendo el AEM autohospedado?

¿Sigue siendo posible (o recomendable) alojar Adobe Experience Manager fuera de Adobe? ¡Tad Reeves y Joey Smith se ponen manos a la obra!

Adobe Summit 2023 – Nuevos lanzamientos y resumen de la conferencia

Tad Reeves y Hank Thobe repasan su experiencia en el Adobe Summit 2023. ¡Repasamos los anuncios de la Cumbre y más!