应用级异步任务调度系统和方法

文档序号:6605302阅读:198来源:国知局
专利名称:应用级异步任务调度系统和方法
技术领域
本发明涉及作业调度处理技术领域,特别是涉及一种应用级异步调度系统及方 法。
背景技术
在日常的系统运行中,在线事务处理进程环境OLTP系统在营业期间不可避免的 需要进行一些条件相对灵活的查询统计,目前系统对于这些查询统计等同于实时任务,予 以实时响应。这些查询统计相比联机事务处理业务而言,实时性要求低于后者,但其资源的 消耗又远高于后者。在多层式应用架构中,这种资源消耗不但体现在数据库的CPU及I/O处 理资源上,还会表现在应用服务器的CPU、内存资源消耗上。以J2EE架构的B/S系统为例, 这类查询统计所返回的巨大结果集,会导致应用服务器花费大量CPU来解析生成超文本格 式结果信息。这些查询统计还具有一定的随机性和突发性,如果其在业务高峰时段集中发 生,就会严重威胁到了 OLTP系统的联机事务处理效率和系统的稳定性。另外,根据来自真实应用系统的统计系统接收到的查询请求中,有25%是本人 曾经在一周内执行过的相同查询;10%是其他人曾经在一周内执行过的相同查询,而查询 的结果却完全一样,再次执行的目的仅仅是希望重新查看查询结果;只有65%的查询请求 是第一次被执行。如果在本人或者他人再次提交查询请求时,能复用首次查询的结果,那么 系统的查询资源消耗在理想情况下可以减少35%左右;如果不仅能复用一周内的查询结 果,而是将复用周期增加到1个月甚至更长,效果将会更加显著。与业务高峰时段资源紧张同样不相称的是,在业务空闲时段,有大量的系统资源 闲置和浪费,以某系统某日白天的资源使用率进行统计为例发现,在早上9:00之前,中午 12:00至14:00,以及下午17:00之后这几个时段,系统的资源使用率不足50%。因此,如何将OLTP中的部分实时性要求不高的处理任务合理安排到系统空闲时 进行处理,实现系统处理压力平衡,发挥利用实时任务的空闲时间处理上述任务,从而提高 系统的整体性能,一直是目前各单位在不断研究的问题。

发明内容
(一)要解决的技术问题有鉴于此,本发明的主要目的在于提供一种应用级异步任务调度系统和方法,以 实现有效利用系统资源。( 二 )技术方案本发明提供了一种应用级异步调度系统,该系统包括数据服务装置,用于运行数 据库管理系统,存放异步任务的参数信息、实例信息、任务处理结果,同时还存放实时任务 与批量处理的相关数据信息;以及异步任务应用服务装置,用于在接收到异步任务请求时, 进行特征识别,按任务特征字在数据服务装置中检索,如果存在相同特征的任务成功执行 结果,则直接输出至客户终端装置,如果存在相同特征的任务正在处理,则输出正在处理信息至客户终端装置,否则提交一个新的异步任务请求到数据服务装置中。上述异步任务应用服务装置进一步包括异步任务调度装置,其对应一个管理线 程,用于检测工作线程和异步任务队列,来处理当时是否有空闲工作线程、当前是否有需要 处理的异步任务,根据判断结果来启动异步任务处理装置;异步任务处理装置,其对应一个 或一组工作线程,用于响应异步任务调度装置的要求执行或者终止执行某个异步任务,或 接收用户的终止请求,并向用户报告工作状态,在任务执行完毕后,记录任务执行结果;异 步任务超时处理装置,其对应一个工作线程,用于处理任务执行时间超出任务参数定义的 最长时限的任务,终止对应异步任务处理装置的工作,更新对应异步任务状态,记录终止情 况。上述一种应用级异步调度系统还包括实时业务应用服务装置,用于处理实时任 务,并能够对异步任务的执行情况进行查询或者获取存放在数据服务装置上的异步任务执 行结果;Web服务装置,用于将客户终端装置的请求转发给实时业务应用服务装置或异步 任务应用服务装置,同时将实时业务应用服务装置或异步任务应用服务装置的信息通过内 部网络5发送给客户终端装置。另外,本发明还提供了一种应用级异步调度方法,该方法包括以下步骤步骤1, 异步任务应用服务装置从客户终端装置接收任务请求;步骤2,异步任务应用服务装置判 断所述任务请求是实时任务请求还是异步任务请求,如果是实时任务请求,则按照实时任 务对其进行处理,如果是异步任务请求,则转入步骤3 ;步骤3,异步任务应用服务装置检索 相同类型任务在相同参数条件下是否已有处理完成结果,如果有则提取已有处理完成结果 返回给客户终端装置,如果不存在,则检查是否存在相同类型任务在相同参数条件下的正 在处理的任务,如果存在则提取任务实例号返回给客户终端装置,客户终端装置等待所述 任务完成并获得处理结果;如果不存在,则将该异步任务请求生成一个新的异步任务存储 到异步任务队列中,异步任务调度装置启动所述异步任务的运行。上述方法还包括步骤4,异步任务调度装置检测当前是否具有空闲线程,如果没 有,则继续检测,如果有,则执行步骤5 ;步骤5,异步任务调度装置利用所述空闲线程执行 所述异步任务。上述步骤4还包括异步任务调度装置根据当前可供异步任务使用的线程数、当 前正在处理的异步任务线程数、当前时间计划内的最大、最小异步并发线程数得出当前是 否有空闲线程供异步任务执行使用。如果当前没有空闲线程,则异步任务调度装置根据参 数设置等待η秒后再扫描是否有空闲线程,η表示自然数。(三)有益效果本发明克服了现有OLTP系统处理模式的不足,提供了一种应用级异步调度系统 及方法,将联机业务按照实时性要求分为实时任务和异步任务两类,将异步任务放在任务 队列中,由独立的异步应用服务装置进行多线程的统一调度和并发控制,在应用服务器和 数据库服务器两端实现了资源的有效控制,并利用队列的平滑作用,更充分的利用了非业 务高峰时段的空闲资源。同时,对查询统计类业务,将其结果保存下来,并按照一个或一组 任务特征字建立目录索引,当提交相同特征字的查询请求时,则立即直接返回结果,而不必 重新进行查询,实现应用级的内容缓冲,避免不必要的资源消耗,实现系统处理压力平衡, 从而提高系统的整体性能。


图1是本发明应用级异步调度系统结构示意图;图2是本发明的异步任务应用服务装置的结构示意图;以及图3是本发明应用级异步调度方法流程图。
具体实施例方式为使本发明的目的、技术方案和优点更加清楚明白,以下参照附图对本发明的技 术方案进一步详细说明。图1是本发明提供的应用级异步调度系统的结构示意图,该系统包括数据服务 装置1、异步任务应用服务装置2、实时业务应用服务装置3、TOB服务装置4、内部网络5和 客户终端装置6。其中,数据服务装置1可以是一个PC服务器或主机,用于运行数据库管理系统,存 放异步任务的参数信息、实例信息、任务处理结果,同时还存放实时业务与批量处理的相关 数据信息。异步任务应用服务装置2可以是一个或一组PC服务器或主机,用于作为处理异步 任务专用的应用服务器,负责响应客户终端装置6提交的业务请求,对数据服务装置1进行 访问,对异步任务进行统一调度处理,并生成异步任务结果,生成结果分成二种,一种形成 文本格式存放于异步任务应用服务装置2自身,另外一种保存于数据库中表中存放于数据 服务装置1中,另外,还能对异步任务进行超时检测,处理超时任务。异步任务应用服务装置2包括如图2所示的3个逻辑部分异步任务调度装置10、 异步任务处理装置11和异步任务超时处理装置12。异步任务应用服务装置2在启动或初 始化时,将启动一个异步任务调度装置10 (对应管理线程),并激活若干个异步任务处理装 置11 (对应工作线程),来处理异步任务调度装置10实际调度到的一个任务的执行工作。 异步任务应用服务装置2在启动或初始化时,同时启动一个异步任务超时处理装置12,专 门处理超时的异步任务,当检测到该任务超时,则终止超时异步任务的线程并更新相应状 态信息,例如,将状态信息更新为任务超时。实时业务应用服务装置3可以是一个或一组PC服务器或主机,用于作为处理实时 任务的应用服务器,可以对异步任务的执行情况进行查询,也可以获取存放在数据服务装 置1上的异步任务执行结果。WEB服务装置4可以是一个或一组PC服务器或主机,也可与实时业务应用服务装 置3共用硬件配置,作为WEB服务器,用于将客户终端装置6的请求转发给实时应用服务装 置3或异步任务应用服务装置2 ;同时将实时业务应用服务装置3和异步任务应用服务装 置2的信息通过内部网络5发送给客户终端装置6。内部网络5为企业的局域网,可以是以太网(Ethernet),也可以是其它局域网,如 光纤分布式数据接口(FDDI)、令牌环(Token-Ring)等。另外还可以通过租用专线等方式将 其各个分支机构的局域网连接组成更大的企业内部网(Intranet)。客户终端装置6是系统的客户端,可以是一台个人PC,安装有浏览器软件,也可以 是其它能够运行浏览器软件的装置,如NC、Windows图形终端等。它有显示装置和输入装置,输入装置可以是键盘和鼠标。它连接到内部网5。图2是本发明异步任务应用服务装置的结构示意图。异步任务应用服务装置2, 用于在接到Web服务装置4转发过来的异步任务请求时,进行特征识别,按任务特征字在数 据服务装置1中检索,如果存在相同特征的任务成功执行结果,则直接输出至客户终端装 置6;如果存在相同特征的任务正在处理,则输出正在处理信息至客户终端装置6,否则提 交一个新的异步任务请求到数据服务装置1中。异步任务应用服务装置2包括异步任务调度装置10,其对应一个管理线程,用于 检测工作线程和异步任务队列,来处理当时是否有空闲工作线程、当前是否有需要处理的 异步任务,根据判断结果来启动异步任务处理装置11 ;异步任务处理装置11,其对应一个 或一组工作线程,用于响应异步任务调度装置10的要求执行或者终止执行某个异步任务, 或接收用户的终止请求,并向其报告工作状态;在任务执行完毕后,记录任务执行结果;以 及异步任务超时处理装置12,其对应一个工作线程,用于处理任务执行时间超出异步任务 参数定义的超时时间的任务,终止对应异步任务处理装置11的工作,更新对应异步任务状 态,记录终止情况。其中异步任务参数用于定义每个异步任务的本身属性,对应异步任务的 中断标志、优先级、超时时间、是否允许重新执行、任务时间预约、是否允许任务并发,几个 参数可通过配置文件或数据表来进行定义。其中异步任务状态分为待处理、正在处理、处理 完成,异步任务新申请时默认状态为待处理,在异步任务调度装置10调度到交于异步任务 处理装置11处理时更新成正在处理,当异步任务处理装置11处理完成后更新成处理完成。图3是本发明应用级异步调度方法的流程图。具体步骤描述如下步骤100 客户终端装置6向Web服务装置4提交异步任务请求;步骤101 =Web服务装置4区分实时任务和异步任务,并根据区分结果转发到实时 业务应用服务装置3或异步任务应用服务装置2 ;步骤102 异步任务应用服务装置2接收异步任务请求后在数据服务装置1中检 索相同类型相同条件的任务是否已有处理完成结果,如果存在则更新查询结果的最后使用 日,然后提取查询结果返回给客户终端装置6,如果不存在,则检查是否存在相同类型任务 相同条件的正在处理的任务,如果存在则提取任务实例号返回给客户终端装置6,如果不存 在,则根据异步任务类型和异步任务参数提交到数据服务装置1中生成新的任务实例并置 于异步任务队列中;步骤103 异步任务调度装置10扫描数据服务装置1,根据检测所得当前数据服务 装置1可供异步任务使用的线程数、当前正在处理的异步任务线程数、当前时间计划内的 最大、最小异步并发线程数,得出当前是否有空闲线程供异步任务执行使用,如果没有,则 根据参数设置等待η秒后再扫描是否有空闲线程,如果有,则转到步骤104 ;步骤104 异步任务调度装置10扫描异步任务队列,检查任务优化级、时间预约、 异步分组时间限制三个参数是否满足,如果不是,则转回103步骤,如果是,则转步骤105 ;步骤105 异步任务处理装置11实际执行异步任务;步骤106 异步任务处理装置11在数据服务装置1中记录任务执行结果;步骤107 在客户终端装置6提交结果查看请求时,展现任务的处理结果。步骤108 在客户终端装置6提交终止任务请求时,异步任务应用服务装置2检测 任务是否可被中断,如果是则终止对应任务,更新任务状态信息,如果不是,则提示无法终止原因。例如,将任务状态信息更新为手工终止。步骤109 在客户终端装置6提交重新执行任务请求时,异步任务应用服务装置 2检测任务是否允许重新执行,如果是,则更新任务状态,并对应任务重新放于异步任务队 列,等待异步任务调度装置10的调度执行,如果不是,则提示无法重新执行原因。下面以举例的方式对上述步骤103中如何计算空闲线程进行详细描述。其中,当前数据服务装置1可供异步任务使用的线程数(下面用E来指代)表示 利用异步任务最大线程数(是指系统允许异步任务最大线程数,通过参数设置在启动时加 载,下面用A来指代)减去当前数据服务装置1中除去异步任务线程和系统线程的线程数 (下面用B来指代),如果该值大于当前异步任务时间计划线程定义参数(是指根据历史资 源消耗情况统计数据得出每个时间段允许的最大(下面用C来指代)、最小(下面用D来指 代)线程数)中设定的当前时间段时的最大值,则以该最大值作为当前数据服务装置1可 供异步任务使用的线程数处理,如果该值小于当前异步任务时间计划线程定义参数中设定 的当前时间段时的最小值,则以最小值作为当前数据服务装置1可供异步任务使用的线程 数处理,如果该值在上述最大值和最小值之间,则以该值作为当前数据服务装置1可供异 步任务使用的线程数处理,另外,当前正在处理的异步任务线程数(下面用F来指代)表示 当前处于活动状态的异步任务工作线程数,空闲工作线程(下面用G来指代)通过当前数 据服务装置1可供异步任务使用的线程数减去当前正在处理的异步任务线程数来获得。下 面通过举例来说明设定某时段内C、D参数值如下C = 10,D = 2A值参数设置为A = 16假定该时段内F值固定,F值实际获取值为F = 8B值对应的实际意义为业务实际使用资源线程数,根据业务使用业务量不同获取 不同值,简单举例如下①获取B 实际值,当 B = 1 时,AA = A-B = 15 > C,此时 E = C = 10,计算G = E-F = 10-8 = 2 > 0,转到步骤104处理②获取B 实际值,当 B = 10 时,D < AA = A-B = 6 < C,此时 E = AA = 6,计算G = E-F = 6-8 = _2 < 0,则根据参数设置等待η秒后再扫描是否有空闲线 程③获取B实际值,当B = 16时,AA = A-B = 0 < D,此时E = D = 2,计算G = E-F = 2-8 = -6 < 0,则根据参数设置等待η秒后再扫描是否有空闲线程。应用本发明提供的应用级异步调度系统及方法,实现了应用级的异步任务机制, 有效的克服了现有OLTP系统处理模式的不足,将联机业务分为实时任务和异步任务两类, 实行差别对待,在以下方面展现出突出的优点1、提高OLTP系统的运行效率和稳定性本发明把联机业务按照实时性要求和资源消耗的差异,划分为实时任务和异步任 务两类,在应用服务端通过设立专门的异步任务应用服务器来实现资源的隔离;在数据库 服务端通过异步任务队列的工作线程数,实现异步任务资源的限定。从而避免了异步任务 对联机事务处理业务的资源争用,提高了联机事务处理的运行效率和系统的整体稳定性。
2、通过应用级的内容缓冲,降低了系统的整体负荷对于异步任务最主要的组成——查询统计类业务,将其结果保存下来,并按照任 务特征建立目录索引,当本人或者他人提交相同特征的查询请求时,则立即直接返回结果, 而不必重新进行查询,实现应用级的内容缓冲,避免不必要的资源消耗。根据本发明在某系统中实际应用的结果统计(一周),在所有异步查询统计请求 中,有24. 7%本人重复查询请求和9. 2%的他人重复查询请求被直接从内容缓冲中返回结 果,合计33. 9%的复用概率,将这些查询请求产生的资源消耗,降低了约1/3。3、提高了非业务高峰时段的资源利用效率本发明将异步任务置于任务队列中,由有限个工作线程按照优先级、预约时间和 队列顺序依次执行,可将业务高峰时段的异步请求,平滑至高峰过后使用,因而提高了非业 务高峰时段的资源利用效率。以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详 细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡 在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保 护范围之内。
权利要求
一种应用级异步调度系统,该系统包括数据服务装置,用于运行数据库管理系统,存放异步任务的参数信息、实例信息、任务处理结果,同时还存放实时业务与批量处理的相关数据信息;以及异步任务应用服务装置,用于在接收到异步任务请求时,进行特征识别,按任务特征字在数据服务装置中检索,如果存在相同特征的任务成功执行结果,则直接输出至客户终端装置,如果存在相同特征的任务正在处理,则输出正在处理信息至客户终端装置,否则提交一个新的异步任务请求到数据服务装置中。
2.根据权利要求1所述的系统,异步任务应用服务装置还包括异步任务调度装置,其 对应一个管理线程,用于检测工作线程和异步任务队列,来处理当时是否有空闲工作线程、 当前是否有需要处理的异步任务,根据判断结果来启动异步任务处理装置。
3.根据权利要求2所述的系统,异步任务应用服务装置还包括异步任务处理装置,其 对应一个或一组工作线程,用于响应异步任务调度装置的要求执行或者终止执行某个异步 任务,或接收用户的终止请求,并向用户报告工作状态;在任务执行完毕后,记录任务执行 结果。
4.根据权利要求3所述的系统,异步任务应用服务装置还包括异步任务超时处理装 置,其对应一个工作线程,用于处理任务执行时间超出任务参数定义的最长时限的任务,终 止对应异步任务处理装置的工作,更新对应异步任务状态,记录终止情况。
5.根据权利要求1-4任一项所述的系统,其特征在于,该系统还包括实时业务应用服务装置,用于处理实时任务,并能够对异步任务的执行情况进行查询 或者获取存放在数据服务装置上的异步任务执行结果;Web服务装置,用于将客户终端装置的请求转发给实时业务应用服务装置或异步任务 应用服务装置,同时将实时业务应用服务装置或异步任务应用服务装置的信息通过内部网 络发送给客户终端装置。
6.根据权利要求5所述的系统,其特征在于数据服务装置、异步任务应用服务装置、实 时业务应用服务装置以及Web服务装置是PC服务器或者主机。
7.一种应用级异步调度方法,该方法包括以下步骤步骤1,异步任务应用服务装置从客户终端装置接收任务请求;步骤2,异步任务应用服务装置判断所述任务请求是实时任务请求还是异步任务请求, 如果是实时任务请求,则按照实时任务对其进行处理,如果是异步任务请求,则转入步骤 3 ;步骤3,异步任务应用服务装置检索相同类型任务在相同参数条件下是否已有处理完 成结果,如果有则提取已有处理完成结果返回给客户终端装置,如果不存在,则检查是否存 在相同类型任务在相同参数条件下的正在处理的任务,如果存在则提取任务实例号返回给 客户终端装置,客户终端装置等待所述任务完成并获得处理结果;如果不存在,则将该异步 任务请求生成一个新的异步任务存储到异步任务队列中,异步任务调度装置启动所述异步 任务的运行。
8.根据权利要求7所述的方法,其特征在于还包括步骤4,异步任务调度装置检测当前是否具有空闲线程,如果没有,则继续检测,如果 有,则执行步骤5;步骤5,异步任务调度装置利用所述空闲线程执行所述异步任务。
9.根据权利要求8所述的方法,其特征在于步骤4还包括异步任务调度装置根据当 前可供异步任务使用的线程数、当前正在处理的异步任务线程数、当前时间计划内的最大、 最小异步并发线程数得出当前是否有空闲线程供异步任务执行使用。
10.根据权利要求8或9所述的方法,其特征在于步骤4还包括如果当前没有空闲线 程,则异步任务调度装置根据参数设置等待η秒后再扫描是否有空闲线程,η表示自然数。
全文摘要
一种应用级异步调度系统和方法。其中该系统包括数据服务装置,用于运行数据库管理系统,存放异步任务的参数信息、实例信息、任务处理结果,同时还存放实时任务与批量处理的相关数据信息;以及异步任务应用服务装置,用于在接收到异步任务请求时,进行特征识别,按任务特征字在数据服务装置中检索,如果存在相同特征的任务成功执行结果,则直接输出至客户终端装置,如果存在相同特征的任务正在处理,则输出正在处理信息至客户终端装置,否则提交一个新的异步任务请求到数据服务装置中。应用本发明的上述技术方案,能够避免不必要的资源消耗,实现系统处理压力平衡,从而提高系统的整体性能。
文档编号G06F17/30GK101882161SQ20101021728
公开日2010年11月10日 申请日期2010年6月23日 优先权日2010年6月23日
发明者张建荣, 张旻, 王雍, 许宜 申请人:中国工商银行股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1