Dispatcher快取檔案意外更新 | AEM
透過收集有關快取失效請求和內容請求的紀錄來尋找模式。 檢視「解決方法」區段中的3種不同情境。
說明 description
環境
Adobe Experience Manager (AEM)
問題
有時Dispatcher快取檔案會在非預期的時間或頻率更新。
解決方法 resolution
發佈內容後,Adobe Experience Manager (AEM)會傳送快取失效請求(GET/dispatcher/invalidate.cache)至Dispatcher。 之後,當對內容的請求到達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.中