装饰双螺旋

AEM Dispatcher 自定义失效脚本

当 Adobe 进行更改开始使用etc.clientlibs作为目录时,我们遇到了一些现有 Dispatcher 缓存失效配置的问题。对于某些缓存文件,Dispatcher 可能会在调用刷新时删除磁盘上的文件。目录 不应该被删除,并且 Dispatcher 将删除.stat文件。这个.stat文件的时间戳是 Dispatcher 在决定是否更新请求的缓存文件时检查的。

然而,由于那个讨厌的.客户端库缓存 名称 中的字符,调度程序被误认为缓存( etc.clientlibs )当任何 /etc 文件失效时应 删除 。当它尝试重新创建目录时,这会导致进一步的问题。在下一个请求中,由于竞争条件,它可能无法在文件系统级别创建etc.clientlibs目录。因此,不会创建任何缓存的客户端库,并且在手动修复此问题(手动重新创建目录)之前,所有请求都会到达 发布者

为了解决这个问题,我们编写了一个 shell 脚本,该脚本由 Dispatcher 在失效期间触发。为了调用脚本,我们在 Dispatcher 配置中添加了以下内容:

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

每当我们的调度程序的缓存因 刷新代理 而失效时,都会运行我们的 invalidate.sh[2] shell 脚本,从而触发 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 和 Tad 深入探讨如何确定您拥有合适的数字体验平台

自托管 Aem 仍然存在吗?

在 Adobe 之外托管 Adobe Experience Manager 是否仍有可能(或建议)?泰德·里夫斯 (Tad Reeves) 和乔伊·史密斯 (Joey Smith) 参与其中!

Adobe 峰会 2023 – 新品发布及会议回顾

Tad Reeves 和 Hank Thobe 回顾了他们在 2023 年 Adobe 峰会上的经历。我们回顾峰会的公告及更多内容!