一种报表计算任务并发控制的方法

文档序号:6463523阅读:134来源:国知局
专利名称:一种报表计算任务并发控制的方法
技术领域
本发明属于报表制作技术领域,具体涉及一种报表计算任务并发控制的 方法。
背景技术
报表是单位和部门运营管理指标的阶段性反映,是相关负责人监控业务 运行状况、进行决策的重要依据。随着信息系统的应用,计算机自动计算和 生成报表逐步取代了传统的手工统计方式,极大的提高了工作效率,增加了 准确程度。目前,用于制作报表的工具软件可分为两类 一类是以微软公司的Excel 为代表的静态报表制作工具,其特征是设计的报表是静态的,不会与数据库中的数据联动而自动增加或减少行列数及改变其中的数据;另一类则是动态 报表制作工具,能够与数据库(主要是关系型数据库)关联,动态地从数据 库中获取数据并根据用户事先绘制好的报表模板和参数自动生成不同布局 (行、列等)和统计内容的报表。这样,计算方案相同的报表只需要设计一 次,可以极大地减少报表生成的工作量并提高工作效率。动态报表由于其行列的数是和数据库关联的,所以往往会有非常多的格 数,数据量巨大,计算动态报表十分消耗服务器资源,所以服务器的并发数 限制是非常必要的,而限制的同时也要考虑充分利用服务器的能力,提高报 表计算的效率。传统的并发控制方法,是按照服务器的能力,把并发数上限设置为某固 定的数值,当并发数达到上限数值时,对新任务就推迟等待,如未到达上限, 则立刻执行计算。但在实际中,由于每次的报表计算任务所需要占用的资源 一般都是不同的,这种方法并不总能充分的利用服务器的计算能力,对一些 资源需求较低的计算任务,服务器就会有空余的资源未被利用起来,而对一 批资源要求都很高的任务,就有可能出现服务器过载而当机的情况。发明内容针对现有技术中存在的问题,本发明的目的是提供一种新的报表计算任 务并发控制方法,该方法能够更加充分的利用报表计算服务器的计算能力, 减少服务器过载情况的出现,提高报表计算效率。为了实现上述目的,本发明采用的技术方案是, 一种报表计算任务并发控制的方法,包括如下步骤(1) 根据服务器的当前状况和能力,设置服务器能承受的最多同时计算的 格子数目;(2) 为报表推算一个报表扩展后的总格数预计值;(3) 考察当前服务器所能容纳的最大剩余格数,将之与步骤(2)中推算 出的计算当前报表的总格数预计值相比较,决定是立刻进行计算还是推迟等 待;(4) 根据报表计算任务的启动与完成情况,使用步骤(2)中推算出的预计 值,修订当前服务器所能容纳的最大剩余格数。进一步,如上所述的报表计算任务并发控制的方法,在步骤(2)中,由 用户为每个报表给出一个函数,其参数为报表的数据集和报表参数,返回值 为报表扩展后的总格数预计值,对于收到的计算任务请求,先计算出需要计 算的报表的数据集,然后套用该函数,推算出该报表扩展后的总格数预计值。进一步,如上所述的报表计算任务并发控制的方法,在步骤(3)中,如 果计算当前报表的总格数预计值小于服务器的最大剩余格数,则执行计算; 如果计算当前报表的总格数预计值大于服务器的最大剩余格数,则推迟计算。进一步,如上所述的报表计算任务并发控制的方法,在步骤(4)中,如 果开始计算新任务,则将服务器能容纳的最大格数减低,减低的数值为新任 务通过套用用户给出的函数得出的扩展后的总格数预计值。 进一步,如上所述的报表计算任务并发控制的方法,在步骤(4)中,当有任 务完成时,增加服务器能容纳的最大格数值,增加的数值为已完成的任务在执行之前通过套用用户给出的函数得出的总格数预计值。本发明所述的方法,是将固定的并发数数值的方法改为动态控制并发, 先推测现有报表计算任务所需要的资源量,再根据所需资源和剩余资源来决定是否接受并执行新任务。采用本发明所述的方法具有以下优点(1) 能够更加充分的利用报表计算服务器的计算能力;(2) 能够减少服务器过载而当机的情况出现;(3) 提高大量报表计算的总体效率。


图l是本发明所述的方法流程图。
具体实施方式
下面对本发明的实施方式进行详细描述。如图l所示, 一种报表计算任务并发控制方法的处理过程如下(1) 先根据服务器的当前状况和能力,设置服务器能承受的最多同时计算 的格子数目。同时计算的格子数目, 一般是根据服务器的内存和正在运行的应用以及 经验估计出来或实验得到的,通常可以进行一次测试,不断增加格子数,直 至过载而当机,就可以得到最大格数的大致值。在本实例中,假设已经得知 当前这台服务最多可以同时运算500万个格子,则设置格数上限为500万。(2) 由用户为每个报表给出一个函数,其参数为报表的数据集和报表参 数,返回值为报表扩展后的总格数预计值。本实例中,,支设现在用户给出的函数为ds. count ()*50 表示扩展后的格数大致为数据集内记录数的50倍。(3) 对于收到的计算任务请求,先计算出需要计算的报表的数据集。 本实例中,假设计算得出当前报表的数据集是一个有1万条记录的数据集。(4) 根据报表的数据集和参数,套用用户给出的函数,推算出扩展后的总 格数预计值。本实例中,通过函数计算得扩展后的格数大致为50万个。(5) 考察当前服务器所能容纳的最大剩余格数,和推算出的计算当前报表 预计需要的格数比较,决定是立刻执行计算还是推迟等待。本实例中,假设当前的服务器正在执行的任务已经同时使用了 460万个 格子,剩余的40万个格子不足以执行这个需要50万格的新任务,则新来的 这个任务就被推延,等待先前任务完成并释放出足够资源后再执行;而如果 前面的任务只占用了 400万个格子用于计算,剩余格数足够执行新任务,就 接受并立即开始执行这个新的计算任务。(6) 如果准备开始计算新任务,则将服务器能容纳的最大格数减低,减低 的数值即为新任务的预计扩展后格数。本实例中,如果开始在服务器已被占用400万格的情况下开始计算新任 务,则需要将服务器能容纳的最大剩余格数减低50万个,既由原来的100 万个改为50万个。(7) 当有任务完成时,增加服务器能容纳的最大格数值,增加的数值即为 已完成任务的预计扩展后格数。本实例中,如果在服务器已被占用460万格的情况下,有一个需50万格 的任务计算完成(注意这里的50万仍然是由起初这个任务请求执行时由用户 函数推算得出的数值),则此时将服务器能容纳的最大剩余格数增加50万个, 既由原来的40万个改为90万个。本领域技术人员根据本发明的技术方案得出其他的实施方式,同样属于本发明的技术创 新范围。
权利要求
1.一种报表计算任务并发控制的方法,包括如下步骤(1)根据服务器的当前状况和能力,设置服务器能承受的最多同时计算的格子数目;(2)为报表推算一个报表扩展后的总格数预计值;(3)考察当前服务器所能容纳的最大剩余格数,将之与步骤(2)中推算出的计算当前报表的总格数预计值相比较,决定是立刻进行计算还是推迟等待;(4)根据报表计算任务的启动与完成情况[S1],使用步骤(2)中推算出的预计值,修订当前服务器所能容纳的最大剩余格数。
2. 如权利要求1所述的报表计算任务并发控制的方法,其特征在于 在步骤(2)中,由用户为每个报表给出一个函数,其参数为报表的数据集和 报表参数,返回值为报表扩展后的总格数预计值,对于收到的计算任务请求, 先计算出需要计算的报表的数据集,然后套用该函数,推算出该报表扩展后的总格数预计值。
3. 如权利要求1或2所述的报表计算任务并发控制的方法,其特征在 于在步骤(3)中,如果计算当前报表的总格数预计值小于服务器的最大剩 余格数,则执行计算;如果计算当前报表的总格数预计值大于服务器的最大 剩余格数,则推迟计算。
4. 如权利要求1或2所述的报表计算任务并发控制的方法,其特征在 于在步骤(4)中,如果开始计算新任务,则将服务器能容纳的最大格数减 低,减低的数值为新任务通过套用用户给出的函数得出的扩展后的总格数预 计值。
5. 如权利要求1或2所述的报表计算任务并发控制的方法,其特征在 于在步骤(4)中,当有任务完成时,增加服务器能容纳的最大格数值,增 加的数值为已完成的任务在执行之前通过套用用户给出的函数得出的总格数 预计值。
全文摘要
本发明公开了一种报表计算任务并发控制的方法,属于报表制作技术领域。在现有技术中,报表服务器的任务并发数只能是固定的数值,这种方法并不总能充分的利用服务器的计算能力,有时也有可能出现服务器过载的情况。本发明所述的方法,将固定的并发数数值的方法改为动态控制并发,按照现有报表计算任务的复杂程度来确定是否接受任务,即动态控制并发。采用本发明所述的方法能够更加充分的利用报表计算服务器的计算能力,减少服务器过载而当机情况的出现,提高报表计算效率。
文档编号G06F17/30GK101266624SQ200810106408
公开日2008年9月17日 申请日期2008年5月13日 优先权日2008年5月13日
发明者许朝阳 申请人:北京润乾信息系统技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1