AEM Dispatcher 사용자 지정 무효화 스크립트
Adobe에서 etc.clientlibs를
디렉토리로 사용하도록 변경했을 때 일부 기존 Dispatcher 캐시 무효화 구성과 관련된 문제가 발생했습니다. 특정 캐시 파일의 경우 플러시가 호출될 때 Dispatcher가 디스크의 파일을 삭제할 수 있습니다. 디렉터리는 삭제되지 않아야 하며 Dispatcher는 .stat
파일을 삭제합니다. 파일을 생성합니다. 이 .stat
파일의 타임스탬프는 요청된 캐시 파일을 업데이트할지 여부를 결정할 때 Dispatcher가 확인하는 항목입니다.
그러나 그 성가신 .
문자를 클라이언트 라이브러리 캐시 이름에 포함시키면 디스패처는 캐시(etc.clientlibs
) 파일이 무효화되면 삭제해야 합니다
. 이로 인해 디렉토리를 다시 만들려고 할 때 추가 문제가 발생했습니다. 다음 요청 시 경합 조건으로 인해 파일 시스템 수준에서 etc.clientlibs
디렉터리를 만들지 못할 수 있습니다. 따라서 캐시된 클라이언트 라이브러리가 생성되지 않으며, 이 문제를 수동으로 수정하기 전까지는(디렉터리를 직접 다시 생성) 모든 요청이 퍼블리셔에 도달하게 됩니다.
이 문제를 해결하기 위해 무효화 중에 디스패처에 의해 트리거되는 셸 스크립트를 작성했습니다. 스크립트를 호출하기 위해 디스패처 구성에 다음을 추가했습니다:
/invalidateHandler "
/opt/dispatcher/scripts/invalidate.sh" [1]
이렇게 하면 ``플러시 에이전트에서 디 스패처의 캐시가 무효화될 때마다 invalidate.sh[2] 셸 스크립트가 실행되어 etc.clientlibs
디렉터리가 다시 생성되고 경쟁 조건을 방지할 수 있었습니다.
[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
팟캐스트 에피소드

디지털 경험 플랫폼을 선택하는 방법
이제 Arbory Digital에서 기술 AEM 팟캐스트를 제공합니다! Raf & 올바른 디지털 경험 플랫폼을 결정하는 방법에 대해 자세히 알아보세요.

셀프 호스팅 Aem은 여전히 유효한가요?
Adobe 외부에서 Adobe Experience Manager를 호스팅하는 것이 여전히 가능합니까(또는 권장합니까)? 태드 리브스와 조이 스미스가 함께합니다!

Adobe Summit 2023 - 새로운 릴리스 & 컨퍼런스 요약
타드 리브스와 행크 토브가 Adobe Summit 2023에서 경험한 내용을 소개합니다. 서밋의 발표 내용 등을 살펴봅니다!