最新历史版本 :模板计算结果缓存 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 描述编辑

对报表进行访问时,若模板的数据计算量很大,每次访问都会从服务器端重新读取数据进行计算,这样就加大了服务器的压力并且导致访问报表的速度变慢。

为此可以设置模板计算结果缓存,当访问过的模板再次被访问时,该模板直接从缓存中读取计算结果,以此来减小服务器的压力以及提升报表的访问速度。


2. 原理编辑

下面以图示说明模板计算结果缓存的基本原理:

客户端 A 访问服务器上的报表设计模板,从数据库中读取,生成想要的模板结果文件,缓存到内存中,并传回客户端 A。

而客户 B 访问服务器上此模板时,若返回的结果与客户端 A 访问返回的结果相同,则不从数据库中读取,而是直接读取A缓存的模板数据,然后传回客户端 B。

注1:目前只支持 cpt 模板计算结果缓存。

注2:读取模板计算结果缓存必须满足:同一张模板且拥有相同的参数。


3. 开启方式编辑

模板计算结果缓存有两种开启方式,且这两种开启方式的缓存数据有效期不同。下面具体说明:

1)使用__cache__参数开启

在访问报表的路径后加 &__cache__=true,表示该报表启用计算结果缓存,如:

http://localhost:8075/webroot/decision/view/report?viewlet=GettingStarted.cpt&__cache__=true

注1:只要系统没有 GC(Garbage Collections) ,缓存会一直保留。

注2:从缓存中读取数据时 URL 后面也要加 &__cache__=true 

2)设置报表有效缓存时间开启

菜单栏点击模板>模板 Web 属性>基本,填写报表缓存有效时间即可开启,设置页面如下图所示:

注:如果设置的缓存有效时间是正数,则有效时间结束,缓存数据清空。如果设置的缓存有效时间是负数,则只要系统没有 GC(Garbage Collections) ,缓存会一直保留。

Snag_4b34ec0.png