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

目录:

1. 概述编辑

1.1 应用场景

对报表进行访问时,若模板的数据计算量很大,每次访问都会从服务器端重新读取数据进行计算,这样就加大了服务器的压力并且导致访问报表的速度变慢,为此可以设置模板计算结果缓存来解决这一问题。

1.2 功能简介

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

1.3 原理

原理说明如下所示:

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

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

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

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

2. 操作步骤编辑

模板计算结果缓存有两种开启方式,且这两种开启方式的缓存数据有效期不同。

2.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.2 设置报表缓存有效时间

在 FineReport 设计器中,点击「模板>模板 Web 属性>基本」,填写「报表缓存有效时间」即可开启,设置页面如下图所示:

注:「报表缓存有效时间」的值为大于 0 的整数,到达有效时间后,缓存数据清空。

1610953669873211.png