是否可以递归地刷新CQ5/AEM apache调度程序中的目录?



由于在多租户情况下的特定项目,我设置了一个具有相当深的统计文件级别的调度程序。

我希望有一种方法能够递归地刷新目录,以模仿其他租户的更浅的统计文件级别。

是否有一个dispatcher flush命令允许我显式地删除目录的内容?

您可以通过向调度程序发送一个简单的GET请求来实现这一点。Dispatcher上需要点击的路径为/dispatcher/invalidate.cache

下面的头确保它被正确处理:

  • CQ-Action:这可以设置为"DELETE"来删除内容。我认为"EXPIRE"也可以将内容标记为过期,但不会从缓存中物理地删除它。
  • CQ-Handle:指定应该删除的内容,从缓存文件夹的根目录开始删除。如。/content/geometrixx",将删除geometrixx及其下的所有内容。"/"将删除缓存中的所有内容。
  • 内容长度,Content-Type:确保请求被正确处理。因为我们不发送body,所以长度可以设为0。内容类型可以是"application/octet-stream"(还没有尝试其他值)。

您将构建的最后一个curl命令看起来像这样:

curl -v 
-H "CQ-Action: DELETE" 
-H "CQ-Handle:/" 
-H "Content-Length: 0" 
-H "Content-Type: application/octet-stream" 
http://localhost:80/dispatcher/invalidate.cache;

(在这里,这是从在端口80上运行在localhost下的Dispatcher上的缓存中删除所有内容。这里的反斜杠是可选的,只是为了更容易阅读)


您可以从任何盒子发出这个GET请求(取决于您的防火墙限制等),例如,它可以来自:

  • 您的CI构建代理
  • 发布实例中的计划作业
  • Author实例中的管理组件,它采用给定的路径进行刷新。

我不清楚整体情况,但IIRC调度程序刷新了它刷新整个目录及其所有子目录。该文件将刷新的类型取决于您的调度程序配置。

所以如果你冲洗/content/geometrixx整个网站将刷新。(如果我记错了,请指正)。

最简单的方法是重新激活作为工作的页面要冲洗的区域的根。否则你甚至会发展您自己的sling servlet,将适当的头发送给调度程序

http://docs.adobe.com/docs/en/aem/6-0/deploy/configuring/replication.html扩展

其他总是有效的选项与HTTP头相同,但是使用curl命令或操作系统进程发送,删除目录

我不是说最后两个是最好的,因为可能有一个效果;但是他们也应该做好这份工作。

最新更新