Dispatcher缓存文件意外更新 | AEM

通过收集有关缓存失效请求和内容请求的日志来查找模式。 在“解决方案”部分中查看3种不同的方案。

描述 description

环境

Adobe Experience Manager (AEM)

问题

有时Dispatcher缓存文件会以意外的时间或频率更新。

解决方法 resolution

发布内容后,Adobe Experience Manager (AEM)会向Dispatcher发送缓存失效请求(GET/dispatcher/invalidate.cache)。 之后,当对内容的请求到达Dispatcher时,它会更新其缓存文件。

基于此行为,通过收集有关缓存失效请求和内容请求的日志来寻找模式。

无效请求的示例日志:
Dispatcher - access_log

127.0.0.1 - - [ 07/Jun/2022:13:44:35 +0900]  "GET /dispatcher/invalidate.cache HTTP/1.1" 200 13 "about:blank" "Jakarta Commons-HttpClient/3.1"

Dispatcher - dispatcher.log

[ 07/Jun/2022:13:44:35 +0900]  "GET /dispatcher/invalidate.cache HTTP/1.1" 200 purge [ publish/-]  0ms

Publish - error.log

07.06.2022 13:44:35.750 *INFO* [ sling-threadpool-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx-(apache-sling-job-thread-pool)-1-com_day_cq_replication_job_flush(com/day/cq/replication/job/flush)]  com.day.cq.replication.Agent.flush Sending GET request to http://localhost:80/dispatcher/invalidate.cache
...
07.06.2022 13:44:35.758 *INFO* [ sling-threadpool-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx-(apache-sling-job-thread-pool)-1-com_day_cq_replication_job_flush(com/day/cq/replication/job/flush)]  com.day.cq.replication.Agent.flush Replication (ACTIVATE) of /content/xx-xxxxxx/us/en/products successful.

原因

以下是Dispatcher缓存文件意外更新的典型情况。


案例1 — 意外内容的频繁缓存更新

缓存文件更新频繁,但更新内容不是缓存失效请求的目标。

在这种情况下,Dispatcher配置中的/statfileslevel值可能太低。 请注意,在dispatcher.any中标注出/statfileslevel表示该值为“0”。

当您具有 /statfileslevel "0" 并发布内容时,无论路径如何,所有缓存文件都将失效。 以下《AEM Dispatcher指南》中的链接描述了详细信息:

配置Dispatcher — 按文件夹级别使文件失效


案例2 — 来自不受欢迎的客户端的缓存失效请求

Dispatcher配置可能对缓存失效请求没有适当的限制。 检查dispatcher.any.中的/allowedClients


案例3 — 没有缓存失效请求

Dispatcher配置可能使用基于时间的缓存失效。 在这种情况下,/enableTTL "1"应存在于dispatcher.any.

recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f