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

时间:2014-07-25 01:14:36

标签: cq5 dispatcher aem

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

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

是否有调度程序刷新命令允许我显式删除内容目录?

2 个答案:

答案 0 :(得分:5)

您可以通过向调度员发送简单的GET请求来实现此目的。您需要访问的Dispatcher上的路径为/dispatcher/invalidate.cache

以下标题可确保正确处理:

  • CQ-Action:这可以设置为" DELETE"删除内容。我认为" EXPIRE"也可以将内容标记为已过期,但不会将其从缓存中物理删除。
  • CQ-Handle:这指定应从缓存文件夹的根目录开始删除的内容。例如。 " / content / geometrixx",将删除geometrixx及其下的所有内容。 " /"会删除缓存中的所有内容。
  • 内容长度& Content-Type:确保正确处理请求。由于我们不发送正文,因此长度可以设置为0. Content-Type可以是" 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实例中的管理组件,它采用给定的路径进行刷新。

答案 1 :(得分:0)

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

因此,如果你刷新/ content / geometrixx整个网站将是 酡。 (如果我记错了,请有人纠正我。)

最简单的方法是恕我直言,重新激活工作的页面 要刷新的区域的根。否则你甚至可以发展 您自己的sling servlet,它将适当的标头发送给调度程序

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

其他始终有效的选项与HTTP标题相同 使用curl命令或删除目录的OS进程发送 来自文件系统。

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