目录

大报表运算中断

概念定义

在服务运行期间,对运算时间较长的大报表进行中断操作,释放cpu和内存来计算其他报表。

 功能背景

当某个大报表运算很长时间时,为了让别的任务能够正确进行计算,不会等待太长时间,允许对该大报表执行中断,使之空出cpu和内存。

使用方法

通过调用API获得正在计算的报表entry,并且调用API中止报表的运算。

代码示例:

CacheManager.getInstance().getReportEntry(String reportName). getReportCache(Context ctx, long timeout). interrupt()//中断单个报表,这里的timeout是自己设的,你希望删除多长时间内计算的报表 CacheManager.getInstance().getReportEntry(String reportName). getReportCache(String reportCacheId). interrupt()//中断单个报表 CacheManager.getInstance().getReportEntry(String reportName). getReportEntries();//获得该报表正在计算的所有实例,然后循环调用interrupt()方法逐个删除 CacheManager.getInstance().getReportEntries().keySet() //列出报表名称

说明:

1、 中断单个报表的运算时,报表模板名为tag标签中的reportFileName或者beanName

2、 alwaysReloadDefine设为no时,才可以正确中断

3、 对于比较大的报表,临界内存的情况下,中断请求发出后,需要等待一会,才能中断成功