一种报表计算方法、设备及介质技术

技术编号:35995863 阅读:10 留言:0更新日期:2022-12-17 23:12
本申请公开了一种报表计算方法、设备及介质,方法包括:获取客户端的报表计算请求,调用任务调度运行日志表;根据任务调度运行日志表,确定每个应用服务器的运行状态;根据每个应用服务器的运行状态,通过预设空闲状态判断算法,确定每个应用服务器的空闲状态;根据每个应用服务器的空闲状态,确定每个应用服务器针对报表计算请求的计算任务;根据每个应用服务器的计算任务,对报表进行计算。服务端在接收报表计算请求后,根据任务调度运行日志表,了解每个应用服务器的运行状态,继续通过预设空闲状态判断算法,得到每个应用服务器的空闲状态,能够自动为每个应用服务器合理分配报表计算量,尤其在大数据量的报表计算下,提高报表计算效率。表计算效率。表计算效率。

【技术实现步骤摘要】
一种报表计算方法、设备及介质


[0001]本申请涉及报表
,尤其涉及一种报表计算方法、设备及介质。

技术介绍

[0002]随着企业信息系统集成与企业电子商务系统建设的发展,报表在企业系统中作为一种重要的信息载体而发挥着重要的作用。
[0003]目前,在报表计算场景下,通常选择单线程模式,但是,在报表计算量较大时,则会消耗较多时间。此时,通常选择在一台服务器使用多线程模式拆分计算任务,但是,将导致该服务器的CPU和内存占用较多,且其他服务器出现闲置的情况,导致报表计算效率低,给用户带来了不好的体验。

技术实现思路

[0004]本申请实施例提供一种报表计算方法、设备及介质,用于解决报表计算效率低,给用户带来了不好的体验的问题。
[0005]本申请实施例采用下述技术方案:
[0006]一方面,本申请实施例提供了一种报表计算方法,该方法包括:获取客户端的报表计算请求;根据所述报表计算请求,调用预先构建的任务调度运行日志表;根据所述任务调度运行日志表,确定每个应用服务器的运行状态;根据所述每个应用服务器的运行状态,通过预设空闲状态判断算法,确定每个应用服务器的空闲状态;根据所述每个应用服务器的空闲状态,确定每个应用服务器针对所述报表计算请求的计算任务;根据所述每个应用服务器的计算任务,对报表进行计算。
[0007]一个示例中,所述根据所述任务调度运行日志表,确定每个应用服务器的运行状态之前,所述方法还包括:将所述报表计算请求中包括的单位数量与每个单位的报表数量进行相乘,确定所述报表计算请求的总计算量;所述根据所述任务调度运行日志表,确定每个应用服务器的运行状态,具体包括:从所述任务调度运行日志表中,查询每个应用服务器正在运行的计算量,以确定每个应用服务器的运行状态。
[0008]一个示例中,所述根据所述每个应用服务器的运行状态,通过预设空闲状态判断算法,确定每个应用服务器的空闲状态,具体包括:确定多个应用服务器正在运行的总运行计算量;根据所述总计算量、所述总运行计算量,确定多个应用服务器的总理想计算量;根据所述多个应用服务器的总理想计算量与所述多个应用服务器的总数量,确定所述每个应用服务器的理想计算量;根据所述每个应用服务器的理想计算量与所述每个应用服务器正在运行的计算量,确定每个应用服务器的空闲计算量;根据所述每个应用服务器的空闲计算量,确定每个应用服务器的空闲状态。
[0009]一个示例中,所述方法还包括:对所述每个应用服务器正在运行的计算量进行求和,得到多个应用服务器正在运行的总运行计算量;对所述总计算量与所述总运行计算量进行求和,确定多个应用服务器的总理想计算量;计算所述多个应用服务器的总理想计算
量与所述多个应用服务器的总数量之间的比值,确定所述每个应用服务器的理想计算量;对所述每个应用服务器的理想计算量与所述每个应用服务器正在运行的计算量进行求差,确定所述每个应用服务器的空闲计算量。
[0010]一个示例中,所述根据所述每个应用服务器的计算任务,对报表进行计算,具体包括:在主线程中,创建多线程;在每个线程中,调用每个应用服务器的服务接口;通过所述服务接口,将所述每个应用服务器的计算任务下发至所述每个应用服务器;通过所述主线程归集所述每个应用服务器的任务执行结果,以根据所述每个应用服务器的任务执行结果,对所述报表进行计算。
[0011]一个示例中,所述将所述每个应用服务器的计算任务下发至所述每个应用服务器之后,所述方法还包括:所述每个应用服务器在线程池中,以单位为粒度,为计算任务中的每个单位创建线程,通过每个线程执行每个单位的计算子任务;将执行所述每个单位的计算子任务中生成的日志数据记录到所述任务调度运行日志表,生成所述计算子任务的日志信息;在每个单位的计算子任务执行完成后,删除所述任务调度运行日志表中所述计算子任务的日志信息;汇集所述每个单位的计算子任务执行结果,得到所述计算任务的任务执行结果,向所述主线程返回所述任务执行结果。
[0012]一个示例中,所述方法还包括:在主线程中,通过Task组件创建多线程;在每个线程中,通过Web Services调用每个应用服务器的服务接口。
[0013]一个示例中,所述根据所述报表计算请求,调用预先构建的任务调度运行日志表之前,所述方法还包括:确定待构建任务调度运行日志表的字段;所述字段包括ID列、应用服务器标识列、任务编号、年度、期间、单位、报表中的至少一种;确定所述字段的业务规则;所述ID列的业务规则为日志唯一标识、所述应用服务器标识列的业务规则为应用服务器的唯一标识、所述任务编号的业务规则为当前正在计算的任务标识、所述年度的业务规则为当前正在计算的年度标识、所述期间的业务规则为正在计算的期间标识、所述单位的业务规则为正在计算的单位标识;所述报表的业务规则为正在计算的报表标识;确定所述字段的字段类型;根据所述字段、所述业务规则以及所述字段类型,构建所述任务调度运行日志表。
[0014]另一方面,本申请实施例提供了一种报表计算设备,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:获取客户端的报表计算请求;根据所述报表计算请求,调用预先构建的任务调度运行日志表;根据所述任务调度运行日志表,确定每个应用服务器的运行状态;根据所述每个应用服务器的运行状态,通过预设空闲状态判断算法,确定每个应用服务器的空闲状态;根据所述每个应用服务器的空闲状态,确定每个应用服务器针对所述报表计算请求的计算任务;根据所述每个应用服务器的计算任务,对报表进行计算。
[0015]另一方面,本申请实施例提供了一种报表计算非易失性计算机存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为:获取客户端的报表计算请求;根据所述报表计算请求,调用预先构建的任务调度运行日志表;根据所述任务调度运行日志表,确定每个应用服务器的运行状态;根据所述每个应用服务器的运行状态,通过预设空闲状态判断算法,确定每个应用服务器的空闲状态;根据所述每个应用服务器的空闲状态,确定每个
应用服务器针对所述报表计算请求的计算任务;根据所述每个应用服务器的计算任务,对报表进行计算。
[0016]本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:
[0017]通过预先构建任务调度运行日志表,从而服务端在接收报表计算请求后,根据所述任务调度运行日志表,了解每个应用服务器的运行状态,继续通过预设空闲状态判断算法,得到每个应用服务器的空闲状态,实现了能够自动为每个应用服务器合理分配报表计算量,尤其在大数据量的报表计算应用场景下,不会导致某一个应用服务器CPU及内存占用率过高,影响该应用服务器上其他任务的响应,提高报表计算的并发率,从而减小并发计算的时间,实现性能优化,提高报表计算效率,提高了用户体验。
附图说明
[0018]为了更清楚地说明本申请的技术方案,下面将结本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种报表计算方法,其特征在于,所述方法包括:获取客户端的报表计算请求;根据所述报表计算请求,调用预先构建的任务调度运行日志表;根据所述任务调度运行日志表,确定每个应用服务器的运行状态;根据所述每个应用服务器的运行状态,通过预设空闲状态判断算法,确定每个应用服务器的空闲状态;根据所述每个应用服务器的空闲状态,确定每个应用服务器针对所述报表计算请求的计算任务;根据所述每个应用服务器的计算任务,对报表进行计算。2.根据权利要求1所述的方法,其特征在于,所述根据所述任务调度运行日志表,确定每个应用服务器的运行状态之前,所述方法还包括:将所述报表计算请求中包括的单位数量与每个单位的报表数量进行相乘,确定所述报表计算请求的总计算量;所述根据所述任务调度运行日志表,确定每个应用服务器的运行状态,具体包括:从所述任务调度运行日志表中,查询每个应用服务器正在运行的计算量,以确定每个应用服务器的运行状态。3.根据权利要求2所述的方法,其特征在于,所述根据所述每个应用服务器的运行状态,通过预设空闲状态判断算法,确定每个应用服务器的空闲状态,具体包括:确定多个应用服务器正在运行的总运行计算量;根据所述总计算量、所述总运行计算量,确定多个应用服务器的总理想计算量;根据所述多个应用服务器的总理想计算量与所述多个应用服务器的总数量,确定所述每个应用服务器的理想计算量;根据所述每个应用服务器的理想计算量与所述每个应用服务器正在运行的计算量,确定每个应用服务器的空闲计算量;根据所述每个应用服务器的空闲计算量,确定每个应用服务器的空闲状态。4.根据权利要求3所述的方法,其特征在于,所述方法还包括:对所述每个应用服务器正在运行的计算量进行求和,得到多个应用服务器正在运行的总运行计算量;对所述总计算量与所述总运行计算量进行求和,确定多个应用服务器的总理想计算量;计算所述多个应用服务器的总理想计算量与所述多个应用服务器的总数量之间的比值,确定所述每个应用服务器的理想计算量;对所述每个应用服务器的理想计算量与所述每个应用服务器正在运行的计算量进行求差,确定所述每个应用服务器的空闲计算量。5.根据权利要求1所述的方法,其特征在于,所述根据所述每个应用服务器的计算任务,对报表进行计算,具体包括:在主线程中,创建多线程;在每个线程中,调用每个应用服务器的服务接口;通过所述服务接口,将所述每个应用服务器的计算任务下发至所述每个应用服务器;
通过所述主线程归集所述每个应用服务器的任务执行结果,以根据所述每个应用服务器的任务执行结果,对所述报表进行计算。6.根据权利要求5所述的方法,其特征在于,所述将所述每个应用服务器的计算任务下发至所述每个应用服务器之后,所述方法还包括:所述每个应用服务器在线程池...

【专利技术属性】
技术研发人员:徐会王旭彭鹏
申请(专利权)人:浪潮通用软件有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1