我想知道CQ调度程序缓存刷新(来自发布实例)和调度程序缓存失效之间是否有任何区别?
请帮忙吗?
答案 0 :(得分:2)
Dispatcher 是一个反向代理服务器,可以缓存来自HTTP源的数据。对于AEM,它通常是出版商或作者。虽然理论上它甚至可以是任何资源提供者。这个后端称为"渲染器"。
缓存失效是由发布者触发的HTTP操作,用于在调度程序上将资源缓存标记为无效。此操作仅删除资源,但不会刷新资源。
刷新是与发布页面相关联的工作流程,并在发布新内容/资源时使发布者/作者实例的缓存无效。在发布期间使缓存无效是非常常见的情况,以便为您的网站提供新内容。
在某些情况下,您希望刷新缓存而不重新发布内容。例如,在发布后,您可能希望从发布者重新生成所有页面,因为更改不是编辑更改,因此没有作者愿意发布内容。在这种情况下,您只需在不使用发布工作流的情况下重新发出缓存。虽然在实践中,通常更容易在调度程序上删除缓存目录,而不是刷新所有页面,但这是一个偏好。这是冲洗和失效的分离真正重要的地方,除了没有什么是真正不同的,因为最终结果几乎是相同的。
答案 1 :(得分:0)
This Adobe article似乎使用" flush"和"无效"互换。
它说:
手动使调度程序缓存无效
使Dispatcher缓存无效(或刷新)而不激活 在页面中,您可以向调度程序发出HTTP请求。例如, 您可以创建一个支持管理员或其他人的CQ应用程序 用于刷新缓存的应用程序。
HTTP请求导致Dispatcher从中删除特定文件 缓存。 (可选)Dispatcher然后使用new刷新缓存 副本。
它还讨论了配置" Dispatcher Flush"代理程序,该代理程序的配置调用了一个HTTP请求,该请求具有" invalidate.cache"在网址中。
答案 2 :(得分:0)
CQ基本上从OSGI调用“Dispatcher Flush Rule Service”,它将Replication操作类型称为“Invalidate Catch”。所以这意味着要刷新catch,CQ复制代理会调用被称为invalidate catch的操作。 这个术语有点令人困惑,但它只是OSGI中的服务和动作组合。
答案 3 :(得分:0)
有两件事情,通过这些事情修改缓存 - 1.内容更新 2.自动失效
在修改任何AEM页面时,内容更新会显示在其中。
当有许多自动生成的页面时使用自动失效,因此调度程序刷新代理会检查最新版本的文件,并通过修改stat文件相应地将文件标记为过期。