什么真的得到缓存在cq5的调度员?

时间:2015-12-07 23:42:37

标签: caching cq5 aem

我们开发了Header&我们网站的页脚。我们创建了一个内容层次结构,并从java服务类中访问了内容层次结构,每个级别都有一个用于保存值的java bean

For ex
 LevelOneBean.java 
   { 
     string linkName; String linkUrl, List<LevelTwoBean> LeveltwoBeanList;
   }
 LevelTwoBean.java 
   { 
     string linkName; String linkUrl, List<LevelTwoBean> LevelthreeBeanList;
   }
  LevelThreeBean.java 
   { 
     string linkName; String linkUrl, 
   }

之后我在我的组件jsp中渲染bean。

当我们在Web服务器上部署时,发现这两个组件使用了70%的cpu,因此速度很慢。我们有调度员,页面应该在调度员中缓存。 我的大四学生说,因为你已经创建了java bean而java bean没有得到缓存。他要求为页眉和页脚创建JSON。 Json将被调度到调度员级别.Java bean没有。

我的问题 - 我想验证我的上述声明。理想情况下,无论渲染设计如何,都应缓存页面get。

请帮助理解这一点。

1 个答案:

答案 0 :(得分:0)

调用bean在这里无关紧要。在将JCR部分转换为HTML / CSS / JS时,通常会调用Bean。

如果在JSP转换阶段调用bean,然后根据bean结果提供HTML,则应缓存响应。

如果浏览器已经与页面一起提供,并且您正在进行AJAX调用,则会发出JSON或XML请求,可以将其设置为缓存。默认情况下,JSON和XML未配置为在调度程序中缓存。

来自调度程序的JSON回调将命中发布者,然后JSP将调用您的bean来呈现响应。同样,它不应该与你的bean有任何关系。

当您进行缓存时,唯一需要注意的是触发刷新或清除缓存的操作。如果要更新内容,则调度程序的统计信息文件刷新方法运行良好。使用JSON和XML的危险在于,您可能正在合成来自树中几个不同源点的响应,如果它们在内容和json路径之间不匹配,则缓存很可能不会被刷新,除非您正在使用Dispatcher Flush for ACS commons。

https://adobe-consulting-services.github.io/acs-aem-commons/features/dispatcher-flush-rules.html

根据你的描述,你的粗体陈述是没有意义的。我会检查你作为渲染的人工制品生成什么,以及这些人工制品是否被缓存/冲洗。