回答
使用重新讀取刷新代理的原因是爲了確保您的頁面在複製後立即緩存在調度程序中。
使用普通的刷新代理程序時,您需要刷新緩存,刷新的內容只會在第一次請求後再次從發佈服務器檢索。這會產生潛在的風險,因爲如果您的網站突然出現高流量高峯期,很可能很多請求以前刷新的頁面在很短的時間內擊中發佈商。例如,當流量較低時,您在夜間刷新大量頁面,並在早上,用戶開始訪問該站點以查看新增內容。在這種情況下,Dispatcher很可能會接收同一頁面的多個併發請求,並將它們轉發給發佈服務器,以便您查看每個頁面的多個請求。
刪除緩存文件插件這種方式是進行一些處理以便不在可能接收同一頁面同時請求的網站。
使用重新讀取刷新代理允許您預先填充緩存,因爲它指示分派器在發生刷新後立即從發佈實例中檢索頁面。通過這種方式,Dispatcher不太可能會調用Publisher來處理針對相同內容的多個併發請求,並且您可以控制重新獲取的時間。稍後發生的任何可能的流量增加都會導致頁面從Dispatcher緩存中提供,而不會影響Publish實例。
重新分配代理使您可以更好地控制Publish實例何時呈現頁面。您正在控制複製事件,並知道何時必須由Publish實例渲染頁面。例如,當流量較低時,您可以在夜間進行重新刷新刷新,並確保每個頁面在實際用戶開始呼叫您的站點前一夜間緩存,從而增加服務器的負載。
再次引用文檔:
刪除,並立即重新緩存文件時,網站有可能接收同一頁面同時客戶端請求。即時回收確保Dispatcher只檢索並緩存頁面一次,而不是每個同時發生的客戶端請求。
一句警告。在嘗試複製大部分內容時或者如果您的自定義AEM代碼不是非常快時,您必須非常小心地使用重新獲取代理。如果您同時激活了大量頁面,則最終可能會由於調度程序使用大量請求來終止發佈服務器而對自己執行DDOS攻擊。根據AEM代碼的性能,效果會有所不同。同時刷新所有內容並立即重新提取是非常糟糕的主意,尤其是如果您的網站需要大量資源才能呈現網頁。
- 1. 爲什麼我們不應該在dopost中使用請求調度程序?
- 2. 爲什麼ExecutorChannel.onInit()重置調度程序?
- 3. 爲什麼在生成器函數中調用清除代碼?
- 4. 如何測試AEM(CQ5)調度程序
- 5. 如何在調度程序中使AEM組件'un-cached'
- 6. 我們爲什麼要在PHP中使用靜態調用?
- 7. 爲什麼我們使用DS來調用過程?
- 8. 爲什麼我們使用HTTP而不是遠程調用?
- 9. 爲什麼我們在重載分配中使用return * this?
- 10. 調用關機代理程序後重新啓動代理程序線程池
- 11. 爲什麼Observable.FromEventPattern需要調度程序?
- 12. 在整個應用程序中重新調用應用程序代理
- 13. 爲什麼我們調用Object.clone()方法?
- 14. 在linux任務調度程序中,sheduler_tick()調用了什麼?
- 15. Reducer組成 - 爲什麼我們需要重新分配todos與Object.assign()爲什麼不只是調用其他reducer?
- 16. 爲什麼RoamingSettings在應用程序更新後清除?
- 17. 配置AEM調度程序6.2 CSRF過濾器
- 18. 配置更改AEM調度程序上的登錄頁面
- 19. 爲什麼我們在編程中使用弧度?
- 20. 爲什麼我們使用fork()或exec()系統調用創建新進程?
- 21. 爲什麼調用cancelAllLocalNotifications會刪除/清除通知中心?
- 22. sigaction - 爲什麼我們不需要重置處理程序?
- 23. 爲什麼我的處理程序被多次調用?
- 24. 爲什麼NSURLSession.dataTaskWithURL()不會調用我的完成處理程序?
- 25. 爲什麼我不能調用wakeLock.release();從處理程序?
- 26. 爲什麼我的流錯誤處理程序不被調用?
- 27. 爲什麼我的終止處理程序從不被調用?
- 28. 爲什麼我的信號處理程序不被調用?
- 29. 爲什麼我們需要Flux中的調度員?
- 30. 爲什麼我的自定義調用處理程序未被調用?