一种任务处理方法以及任务处理装置的制作方法

文档序号:6335746阅读:158来源:国知局

专利名称::一种任务处理方法以及任务处理装置的制作方法
技术领域
:本发明涉及数据处理
技术领域
,尤其涉及一种任务处理方法以及任务处理装置。
背景技术
:随着移动通信技术的不断发展以及移动通信市场的不断壮大,业务种类也在不断增加,各通信运营商对用户通信数据及业务量数据的分析需求也越来越精细,越来越复杂,诸多原因使得后台数据库中需要执行统计的任务也相应的增多。以Oracle数据库为例,如要进行相关数据的分析,需要完成旧数据清空、新数据生成、索引创建以及内容统计等关键步骤。在任务数量相对较少时,可通过批量SQL(StructuredQueryLanguage,结构化查询语言)语句脚本为载体定时执行SQL语句(即SQL操作),但是,随着任务数量的不断增加,该类SQL操作也随之不断增加,并且在任务关联越来越多的情况下,所有统计任务之间的关系也开始复杂,执行的先后顺序也受到严格的限制。因此,随着任务数量的增加,传统的以批量SQL语句脚本为载体执行SQL语句的方式,将会出现管理维护等门槛。为了应对任务数量较大的情况,与本发明相关的一种现有技术提供了一种基于SQL数据库的任务树的快速检索及生成显示的方法,该技术方案将任务树的任务节点编号转换为SQL能够排序的信息,具体为将任务节点编号的每一组数字进行数值加权处理,再进行编码转换,形成数据库能够判别大小的排序数值,根据得到的排序数值,通过SQL语言对任务节点进行排序,实现对任务树的检索,并进一步生成显示。其中数值加权处理过程为将任务节点编号的每一组数字乘以加权因子,完成加权处理;编码转换过程为将加权处理后的任务节点编号各组数字,按其在任务节点编号中的顺序进行字符串的连接,得到任务节点编号的最终格式转换值,即排序数值。该方法实现了对任务顺序的识别及树形显示,从而在任务数量较多的情况下实现了对任务的管理维护。但该方法在实际应用中,存在如下几个问题1、仅能处理树形结构的任务逻辑关系即仅能处理一个父节点任务对应多个子节点任务的逻辑关系,而在实际统计环境中,任务间的逻辑关系趋向于复杂,已经不局限于树形结构,还可能包网状结构、环状结构等各种逻辑关系,即除一个父节点任务对应多个子节点任务外,还包括一个子节点任务对应多个父节点任务的情况,对此种情况的处理显然不能基于上述现有技术通过树形结构及对编码的排序得以处理。2、无法满足执行顺序动态变化的需求上述现有技术中,对任务进行排序依赖于对节点编号的排序处理,需要在任务配置期间就为任务提供可以用来排序的编号,即在任务执行前就需将编号确定。编号一旦确定,执行顺序便不再发生变化。而在实际统计工作中,统计任务之间的逻辑关系,往往是根据统计中所使用的数据对象的准备情况动态确定,即任务之间的逻辑关系定义会使任务执行顺序发生变化,而这是无法通过固定编码来解决的。综上所述,上述依赖于任务关系树以及任务编号的现有技术,对任务逻辑关系结构的适用性差,并且任务执行过程依赖于任务配置时规定的任务执行顺序。
发明内容有鉴于此,本发明实施例提供一种任务处理方法以及任务处理装置,该技术方案相对于现有技术,能够适用于更多的任务逻辑关系结构,并且任务执行过程不依赖于任务配置时规定的任务执行顺序。本发明实施例通过如下技术方案实现根据本发明实施例的一个方面,提供了一种任务处理方法,包括获取预先生成的任务列表,所述任务列表中包括通过父子节点关系表示的各任务之间的逻辑关系、对应每个节点的任务记录以及为各层作为下层节点的父节点的节点生成的扫描优先级信息;根据所述扫描优先级信息,针对对应每个优先级的各节点,分别执行若对应当前优先级的当前节点为根节点,则根据当前节点对应的任务记录执行任务;若对应当前优先级的当前节点不为根节点,在确定当前节点的父节点对应的任务均被成功执行时,根据当前节点的任务记录执行任务。根据本发明实施例的另一个方面,还提供了一种任务处理装置,包括任务列表生成单元,用于预先生成的任务列表;任务列表获取单元,用于获取所述任务列表生成单元预先生成的任务列表,所述任务列表中包括通过父子节点关系表示的各任务之间的逻辑关系、对应每个节点的任务记录以及为各层作为下层节点的父节点的节点生成的扫描优先级信息;任务处理单元,用于根据所述扫描优先级信息,针对对应每个优先级的各节点,分别执行若对应当前优先级的当前节点为根节点,则根据当前节点对应的任务记录执行任务;若对应当前优先级的当前节点不为根节点,在确定当前节点的父节点对应的任务均被成功执行时,根据当前节点的任务记录执行任务。通过本发明实施例提供的上述至少一个技术方案,在对任务进行处理时,首先获取预先生成的任务列表,该任务列表中包括通过父子节点关系表示的各任务之间的逻辑关系、对应每个节点的任务记录以及为各层作为下层节点的父节点的节点生成的扫描优先级信息;然后根据扫描优先级信息,针对对应每个优先级的各节点,分别对任务进行处理,即若对应当前优先级的当前节点为根节点,则根据当前节点对应的任务记录执行任务,若对应当前优先级的当前节点不为根节点,在确定当前节点的父节点对应的任务均被成功执行时,根据当前节点的任务记录执行任务。根据该技术方案,可以通过父子节点关系表示的各任务之间的逻辑关系,相对于现有技术,能够更好地适用更多的任务逻辑关系结构,例如,树状逻辑关系结果、网状逻辑关系结构等;并且相对于现有技术,无需预先配置任务执行顺序,任务的执行不依赖于任务配置时规定的任务执行顺序,而根据为各层作为下层节点的父节点的节点生成的扫描优先级信息以及任务记录动态地确定当前节点的任务是否执行,从而提高了任务处理的灵活性。本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明实施例一起用于解释本发明,并不构成对本发明的限制。在附图中图1为本发明实施例一提供的任务处理过程对应的流程图;图2为本发明实施例一提供的配置任务配置列表的过程对应的流程图;图3为本发明实施例一提供的生成任务列表的过程对应的流程图;图4为本发明实施例一提供的任务执行过程对应的流程图;图5为本发明实施例二提供的任务处理装置示意图一;图6为本发明实施例二提供的任务处理装置示意图二。具体实施例方式为了给出适用更多任务逻辑关系结构以及不依赖于任务配置时规定的任务执行顺序的实现方案,本发明实施例提供了一种任务处理方法以及任务处理装置,以下结合说明书附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。并且在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。实施例一本发明实施例一提供了一种任务处理方法,该任务处理方法能够适用于多种任务逻辑关系,尤其适用于树结构的任务逻辑关系以及网状结构的任务逻辑关系,并且,该方法的执行过程不依赖于任务配置时规定的任务执行顺序。如图1所示,该实施例一提供的任务处理过程,主要包括如下步骤101至步骤107步骤101、获取预先生成的任务列表。该步骤101中,获取到的任务列表中包括通过父子节点关系表示的各任务之间的逻辑关系、对应每个节点的任务记录以及为各层作为下层节点的父节点的节点生成的扫描优先级信息。步骤102、根据任务列表中包括的扫描优先级信息,选择一个未被选择过的优先级作为当前优先级。该步骤102中,可以优选地根据优先级由高到底的顺序选择一个优先级为当前优先级。步骤103、从当前优先级的各节点中选择一个未被选择的节点,并判断选择的该节点是否为根节点,若是,执行步骤104,若否,执行步骤105。步骤104、根据当前节点对应的任务记录执行任务,并继续步骤106。步骤105、在确定当前节点的父节点对应的任务均被成功执行后,根据当前节点的任务记录执行任务,继续执行步骤106。步骤106、判断当前优先级的各节点是否均被选择,若是,执行步骤107,若否,返回步骤103。步骤107、任务列表中的所有优先级是否均被选择过,若是,则结束,若否,则返回步骤102。至此,对任务的处理流程结束。以上流程所述的过程为本发明实施例一提供的任务处理流程的主要流程,其中涉及的步骤为一种优选实施方式。在图1对应流程中,通过步骤102至步骤107,针对对应各优先级的各节点分别执行任务处理过程,即分别执行若对应当前优先级的当前节点为根节点,则根据当前节点对应的任务记录执行任务;若对应当前优先级的当前节点不为根节点,在确定当前节点的父节点对应的任务均被成功执行时,根据当前节点的任务记录执行任务。图1对应的上述流程中,通过串行方式执行上述针对对应各优先级的各节点分别执行任务处理过程,实际应用中,在针对对应各优先级的各节点分别执行任务处理时,也可以采用并行处理方式,即通过多个线程分别对不同优先级的各节点执行任务处理,从而提高任务处理的效率。本发明实施例一还提供了预先生成任务列表的具体方式,具体地,生成任务列表时是根据预先配置的任务配置列表,以下分别针对配置任务配置列表的过程以及根据任务配置列表生成任务列表的过程进行说明。一、配置任务配置列表的过程任务配置过程需充分考虑统计任务可归纳及简化的程度,利用Oracle数据表记录任务逻辑关系、语句模板、源数据对象列表、目标数据对象列表、可用资源列表及中止条件检测等信息。具体地,如图2所示,配置任务配置列表的过程进一步包括逻辑关系配置过程、SQL语句模板配置过程以及其它参数配置过程;其中,针对各个过程的配置说明如下1、逻辑关系配置过程,包括根据待处理的任务流程,配置各任务之间的逻辑关系并通过父子节点关系表示;以及配置各节点对应的任务执行条件。其中,由于本发明实施例一中是通过父子节点关系表示各任务之间的逻辑关系,并通过任务执行条件的配置使得任务之间的逻辑关系不局限于树状结构的逻辑关系,还可以为网状结构的逻辑关系,若为网状结构的逻辑关系,需要通过任务执行条件表述当前节点对应的多个父节点。各任务节点之间的逻辑关系可以通过各节点对应的节点标识标注,节点标识为针对各节点生成的用于唯一标识该节点的标识信息。通过任务执行条件的配置,能够确保逻辑关系表述的正确性及方便性,同时兼顾对任务配置的方便性和可读性,在任务的具体执行过程中,一个任务节点的任务能否被执行,将由该节点对应的任务执行条件确定,即检测任务执行条件符合则执行任务,检测不通过则不执行任务。2、SQL语句模板配置过程,包括对对应同一操作类型的任务语句经过归纳概括后,可精简为模板语句存入任务配置列表中相应记录中,相对于现有技术中逐一列出所有的SQL语句,达到简化配置工作的目的。为实现SQL语句的模板化,对系统中可以归纳的参数全部采用自定义保留字的形式来表达,一般情况下,SQL语句模板包括用于表示源数据对象的自定义保留字段以及用于表示目标数据对象的自定义保留字段;根据系统需求,该SQL语句模板在包括上述自定义保留字段的基础上,还可以进一步包括用于表示存储资源的自定义保留字段以及用于表示远程数据库链接资源的自定义保留字段。为便于理解,具体实现中,SQL语句模块可以如下所述将用于表示目标数据对象的自定义保留字段定义为TGTOBJ;将用于表示源数据对象的自定义保留字段定义为SRCOBJ;将用于表示存储资源的自定义保留字段定义为TABLESPACE;将用于表示远程数据库链接资源定义为DBLINK。在上述定义的基础上,原本需要多条语句来表示的任务可统一简化为一条语句即可,例如从同一远程数据库链上的多条任务语句可精简为CREATETABLETGTOBJASSELECT*FR0MSRCOBJiDBLINK一条SQL语句模板即可。上述SQL语句模板表示在本地数据库上通过名为DBLINK的数据库链接,复制远程数据库中的源数据对象(数据表)内容,并创建目标对象(数据表)。更为具体地,一条SQL语句可以为Createtablesubscribertablespacedata538hasselect氺fromtbcs.subscriberiyybcv;该条SQL语句中,本地的subscriber即为目标数据对象,远程数据库中的subscriber即为源数据对象,data538即为表空间名称;yybcv即为远程数据库链接名称。该条SQL语句表示在本地数据库的名为data53a!表空间上通过名为yybcv的数据库链接,复制远程数据库中名称为subscriber表的内容,并创建为名为subscriber的表。本发明实施例一提供的方法在权限许可范围内可实现对绝大部份DML(DataManipulationLanguage,Ig-llf)Μ.DDL(DataDefinitionLanguage,定义语言)语句的模板化支撑。3、其它参数配置过程,包括配置的其它参数包括对任务操作的源数据对象、目标数据对象。在配置上述参数的基础上,还可以进一步配置存储资源、远程数据库链接资源以及任务中止条件等参数的配置。其中源数据对象、目标数据对象可实现对枚举列表及动态SQL的支撑,特别是目标数据对象中仍然包括对自定义保留字TGTOBJ的支撑,以便任务生成时能使目标数据对象与源数据对象形成正确的对应关系;存储资源(即表空间),用于向程序提供可选择使用的数据库资源,以确保任务执行的成功率,使任务的执行对数据库资源消耗所产生的影响最小。任务中止条件的设定可用来防止任务被吊死或进行任务执行周期设定。9二、根据任务配置列表生成任务列表的过程如图3所示,生成任务列表的过程,主要包括如下步骤301至步骤306所述的过程步骤301、获取任务配置列表。该步骤301的优选实施方式中,获取的任务配置列表包括通过父子节点关系表示的各任务之间的逻辑关系信息、每个节点对应的任务的任务执行条件、源数据对象、目标数据对象以及通过自定义保留字段表示的SQL语句模板等信息。步骤302、判断任务配置列表是否已生成任务列表,若是,则结束,若否,继续执行后续步骤。步骤303、根据通过父子节点关系表示的各任务之间的逻辑关系信息,生成各层节点的扫描优先级信息。该步骤303的优选实施方式中,为充分估量当前任务应被扫描的顺序,程序对任务配置表进行全表扫描,并依据表中父子节点间的关系确定各项任务进入任务列表后被循环抽取时的优先顺序(即扫描优先级)。根据逻辑关系信息,为各层作为下层节点的父节点的节点生成扫描优先级信息,其中,位于同一层的节点对应同一扫描优先级且该层节点的扫描优先级高于作为其子节点的下层节点的优先级。本发明实施例一通过该方式描述出当前任务在整个任务列表中的逻辑层次,以便该任务在扫描时能被优先扫描到,相对于现有技术单纯依靠循环逐一扫描的方式,减少循环扫描次数。步骤304、将该逻辑关系信息以及所述优先级信息加入任务列表。步骤305、通过对节点对应的源数据对象以及目标数据对象解析确定源数据对象以及目标数据对象的对应关系。该步骤305的优选实施方式中,通过对任务配置列表中源数据对象及目标数据对象中参数的解析,确定源数据对象及目标数据对象的具体名称,及源数据对象与目标数据对象的对应关系。例如,源数据对象参数经过解析后包括多个数据对象,如tabl、tab2、tab3等,目标对象参数经过解析后会形成与之相对应的对象名称,而不会出现混乱。具体地,对任务配置列表中源数据对象及目标数据对象中参数的解析,包括源数据对像参数中包含着执行后能获取到的源数据对像名称的SQL语句,而目标数据对像参数中可通过调用之前定义的关键字SRC0BJ,实现对源数据对像名称的转换,从而得到目标数据对像名称。例如,源数据对像参数中存有一条SQL,执行后可获得名为tabl和tab2的两个表,而目标对像参数中通过对自定义关键字SRCOBJ的调用,可将源数据对像参数的换算结果循环代入目标对像参数的语句中执行,并得到一一对应的目标数据对像名称,如tabl_test和tab2_testο步骤306、将存在对应关系的源数据对象以及目标数据对象代入该节点对应的SQL语句模板生成SQL语句,并将该节点对应的SQL语句以及任务执行条件作为该节点的任务记录加入任务列表。上述步骤304以及步骤306中,可以为本次任务配置列表生成的任务列表分配批次号,并连同分配的批次号一起保存至任务列表。此处,为充分利用服务器资源,减少进程等待时间,调度中指定进程依据扫描优先级的顺序逐步扫描任务。若不指定批次号,程序默认读取最新生成且未被执行完毕的批次号的任务列表来执行。1至此,根据获取的任务配置列表生成任务列表的流程结束。以上实施例中,优选地可以在确定各层节点的扫描优先级信息后,根据扫描优先级信息执行步骤305,以保证对应关系解析的正确性。但实际应用中,上述流程中,步骤303以及步骤305并无严格的先后执行顺序,可以先执行步骤305再执行步骤303,或者该两个步骤并行执行;并且,步骤304和步骤306也可以合并执行。上述根据任务配置列表生成任务列表的过程可以在接到用户发出的任务生成命令后,进入任务列表生成环节。该环节由程序自动执行,无需人工干预。上述根据任务配置列表生成任务列表的过程中,若步骤301获取的任务配置列表还包括每个节点对应的存储资源信息以及远程数据库链接资源信息,则上述步骤306中,即在确定源数据对象以及目标数据对象的对应关系后,还进一步包括如下步骤将存在对应关系的源数据对象以及目标数据对象、节点对应的存储资源信息以及远程数据库链接资源信息代入该节点对应的SQL语句模板生成SQL语句。本发明实施例一还提供了图1对应流程的一个优选实施方式,该优选实施方式中,在执行上述步骤105之前,即在确定当前节点的父节点对应的任务均被成功执行之前,还进一步执行如下步骤从对应当前优先级的节点中获取一个节点的任务记录作为当前节点的任务记录;根据当前节点的任务记录确定当前节点对应的任务未执行且任务状态为初始状态。其中,任务的任务状态包括未执行、等待、检测、执行、完成、中止、人为中止等,此处,任务状态为初始状态即为未执行。其中任务状态为未执行,表示该生成该任务后,该任务执行列表中各项任务的初始状态;任务状态为检测,表示进程读取中止条件及执行条件进行检测时的状态;任务状态为等待,表示对该任务的任务执行条件检测未通过,该任务进入等待状态;任务状态为中止,表示对该任务的任务中止条件检测符合中止条件,该任务进入中止状态;任务状态为执行,表示对该任务的任务执行条件检测通过(如果存在任务中止条件,则还需要对任务中止条件检测通过),该任务进入执行状态;任务状态为完成,表示该任务执行成功,进入完成状态;任务状态为人为中止,表示该任务是被人为指令中止,则进入人为中止状态。进一步地,若根据当前节点的任务记录确定所述节点对应的任务未执行且任务状态不为初始状态,则不进入步骤105的执行过程,而返回从对应当前优先级的节点中获取一个节点的任务记录作为当前节点的任务记录的过程。通过上述步骤的执行,在图1对应流程基础上,进一步在执行步骤105之前执行上述步骤,即在根据当前节点的任务记录确定当前节点对应的任务未执行且任务状态为初始状态后执行步骤105,从而避免对同一节点的重复调度,例如,对于已被选择但由于任务执行条件不满足等因素而导致该任务未执行的节点的重复选择,从而提高任务的处理效率。本发明实施例一还提供了图1对应流程的一个优选实施方式,该优选实施方式中,若上述步骤105中,未确定当前节点的父节点对应的任务均被成功执行,则不继续执行步骤106,而执行如下过程将当前节点对应的任务的任务状态更新为等待;在确定当前优先级的所有节点对应的未执行任务的任务状态均为等待后,初始化该未执行任务的任务状态为初始状态。通过上述流程,在初始化该未执行任务的任务状态为初始状态后,可以重新对该处于初始化状态的任务进行调度,即返回步骤103。本发明实施例一还提供了图1对应流程的步骤104以及步骤105中,根据当前节点对应的任务记录执行任务的优选实施方式,即任务执行过程。具体如图4所示,该任务执行过程,主要包括如下步骤步骤401、获取当前节点对于的任务记录。该步骤401中,当前节点的任务记录包括任务执行条件以及用于指示该任务执行过程的SQL语句。步骤402、根据当前节点对应的任务记录包括的任务执行条件确定是否满足任务执行条件,若是,执行步骤403,若否,执行步骤404。步骤403、根据当前节点对应的任务记录包括的SQL语句执行任务,至此,对当前节点对应的任务执行流程结束。步骤404、将当前节点对应的任务的任务状态更新为等待,并在确定满足当前节点对应的任务执行条件后,根据该当前节点对应的SQL语句执行任务,至此,对当前节点对应的任务执行流程结束。上述步骤402中,任务执行条件为预先配置的,具体配置时,根据任务的不同要求,可以设置不同的任务执行条件。例如,统计中需先将tablel、table2导至本地,然后根据tablel,table2生成table3,因此逻辑上tablel、table2生成的优先级为1级,table3生成为2级,但是基于tablel、table2还会有其它的操作,比如创建索引、创建同名等,在逻辑上也是2级。因此,同样是2级,先执行哪一项任务将根据设定的任务执行条件来确定,这样,可以为生成table3的任务指定任务执行条件为tablel、table2均已生成。如tablel、table2未生成,则先执行已生成表的创建索引、创建同名等逻辑上为2级的任务。上述步骤403中,在根据当前节点对应的任务记录包括的SQL语句执行任务的过程中,若任务执行成功,则将任务状态置为“成功”,若执行受阻,则将错误信息记录在任务状态中,形成日志,供用户事后核查。若在执行中,遇突发事件,需紧急中止任务列表的执行,用户可执行停止指令,将指定批号(默认为所有未被执行的任务)的未被执行任务全部置为“人为中止”状态,实现对各项任务列表执行的终止。待条件允许后,再通过恢复指令,使任务控制模块恢复对“人为中止”状态任务接续执行。根据以上所述的任务配置过程,在为节点进行任务配置时,还可以进一步配置该节点的任务中止条件,并将任务中止条件包括在该节点的任务记录中。在此情况下,在执行上述步骤402之前,进一步执行如下步骤根据当前节点对应的任务记录包括的任务中止条件确定不满该任务中止条件。12即在不满足任务中止条件时,执行上述步骤402以及后续步骤。若根据当前节点对应的任务记录包括的任务中止条件确定满足任务中止条件时,则中止执行该任务。上述流程中,任务中止条件预先配置的,配置任务中止条件的主要作用包含两个方面一是防止任务被无限期等待。任务定置时,通过设定SQL检测语句精确任务的执行顺序,但当任务执行条件不具备时任务会一直处理等待状态而耗费资源,为此可以在任务中止条件中设定任务执行时限,若超过此时限,则该任务即被中止;二是可用于灵活设定任务的执行周期,例如,某任务指定在设定时间(如每月1号)才被允许执行,可以通过语句"select1fromdualwhereto_char(sysdate,,DD,),01,”限定在其他日期中该任务不被执行。根据本发明实施例一提供的上述技术方案,在实际应用中,可以通过ORACLE数据表记录任务对应的SQL语句模板、存储资源参数及任务间的各种逻辑关系结构等,并据此动态确定任务执行顺序,批量生成任务列表供执行进程并发读取执行。执行过程中可通过指令实现对执行进程的灵活管控(包括增加并行度、进程启停、接续执行等功能),在保障任务按正确顺序成功执行的前提下尽最大可能提升任务的执行效率。并且,基于Oracle数据表,通过父节点确定扫描优先级以及对任务执行条件、任务中止条件的定义实现对扫描顺序及执行顺序的判定,达到对统计任务间复杂逻辑关系的记录及精确解读。基于当前节点的父节点任务执行状态、当前节点的任务执行条件、任务中止条件、当前任务状态等诸多检测手段设计的任务调度机制,确保并行进程能按正确顺序执行任务的同时保持相对独立,尽最大可能降低并行进程间的等待时间及由此造成对系统资源的浪费。同时作为该任务调度机制的深入应用,使任务执行中的断点接续、任意启停、并行进程数量增加等功能得以实现,增强了任务执行过程中的人为干预手段。对DDL及DML语句中源数据对象、目标数据对象、存储资源、数据库链接等参数进行概括抽取,并用自定义保留字替代,实现对任务执行语句的精简及模板化支撑,在执行时再通过对各参数的分析计算来动态确定完整的任务语句,即简化任务定制时的工作量和复杂程度,又提高任务执行成功的可靠性,还避免了因任务执行造成对系统资源占用的不均衡。实施例二本发明实施例二提供了一种任务处理装置,该任务处理装置能够适用于多种任务逻辑关系的处理,尤其适用于树结构的任务逻辑关系以及网状结构的任务逻辑关系,并且,该方法的执行过程不依赖于任务配置时规定的任务执行顺序。如图5所示,该实施例二提供的任务处理装置,主要包括任务列表生成单元501、任务列表获取单元502以及任务处理单元503;其中任务列表生成单元501,用于预先生成的任务列表;任务列表获取单元502,用于获取任务列表生成单元501预先生成的任务列表,该任务列表中包括通过父子节点关系表示的各任务之间的逻辑关系、对应每个节点的任务记录以及为各层作为下层节点的父节点的节点生成的扫描优先级信息;任务处理单元503,用于根据任务列表获取单元502获取的任务列表中包括的扫描优先级信息,针对对应每个优先级的各节点,分别执行若对应当前优先级的当前节点为根节点,则根据当前节点对应的任务记录执行任务;若对应当前优先级的当前节点不为根节点,在确定当前节点的父节点对应的任务均被成功执行时,根据当前节点的任务记录执行任务。如图6所示,本发明实施例二提供的优选实施方式中,图5所示的任务处理装置中包括的任务列表生成单元501,还可以进一步包括任务配置列表获取模块501A、扫描优先级生成模块501B、SQL语句生成模块501C以及任务列表记录模块501D;其中任务配置列表获取模块501A,用于获取任务配置列表,所述任务配置列表包括通过父子节点关系表示的各任务之间的逻辑关系信息、每个节点对应的任务的任务执行条件、源数据对象、目标数据对象以及通过自定义保留字段表示的SQL语句模板;扫描优先级生成模块501B,用于根据任务配置列表获取模块501A获取的任务配置列表中包括的逻辑关系信息,为各层作为下层节点的父节点的节点生成扫描优先级信息,其中,位于同一层的节点对应同一扫描优先级且该层节点的扫描优先级高于作为其子节点的下层节点的优先级;SQL语句生成模块501C,用于通过对任务配置列表获取模块50IA获取的任务配置列表中包括的节点对应的源数据对象以及目标数据对象解析确定所述源数据对象以及目标数据对象的对应关系,并将存在对应关系的源数据对象以及目标数据对象代入所述节点对应的SQL语句模板生成SQL语句;任务列表记录模块501D,用于将扫描优先级生成模块501B生成的扫描优先级信息以及任务配置列表中包括的逻辑关系信息加入任务列表,以及将SQL语句生成模块501C生成的节点对应的SQL语句以及任务配置列表中包括的任务执行条件作为所述节点的任务记录加入任务列表。本发明实施例二提供的优选实施方式中,图6所示的任务处理装置包括的SQL语句生成模块501C,具体用于将存在对应关系的源数据对象以及目标数据对象代入所述节点对应的包括用于表示源数据对象的自定义保留字段以及用于表示目标数据对象的自定义保留字段的SQL语句模板生成SQL语句。本发明实施例二提供的优选实施方式中,图6所示的任务处理装置包括的SQL语句生成模块501C,具体用于在所述任务配置列表还包括每个节点对应的存储资源信息以及远程数据库链接资源信息,且所述SQL语句模板还包括用于表示存储资源的自定义保留字段以及用于表示远程数据库链接资源的自定义保留字段时,在确定所述源数据对象以及目标数据对象的对应关系后,将存在对应关系的源数据对象以及目标数据对象、所述节点对应的存储资源信息以及远程数据库链接资源信息代入所述节点对应的SQL语句模板生成SQL语句。本发明实施例二提供的优选实施方式中,图5所示的任务处理装置包括的任务处理单元503,具体用于在确定当前节点的父节点对应的任务均被成功执行之前,从对应当前优先级的节点中获取一个节点的任务记录作为当前节点的任务记录;并根据所述当前节点的任务记录确定所述当前节点对应的任务未执行且任务状态为初始状态。本发明实施例二提供的优选实施方式中,图5所示的任务处理装置包括的任务处理单元503,还用于在未确定当前节点的父节点对应的任务均被成功执行时,将所述当前节点对应的任务的任务状态更新为等待;并在确定当前优先级的所有节点对应的未执行任务的任务状态均为等待后,初始化所述未执行任务的任务状态为初始状态。本发明实施例二提供的优选实施方式中,图5所示的任务处理装置包括的任务处理单元503,具体用于若对应当前优先级的当前节点为根节点,在根据当前节点对应的任务记录包括的任务执行条件确定满足所述任务执行条件时,根据当前节点对应的任务记录包括的SQL语句执行任务;若对应当前优先级的当前节点不为根节点,在确定当前节点的父节点对应的任务均被成功执行、并且根据当前节点对应的任务记录包括的任务执行条件确定满足所述任务执行条件时,根据当前节点对应的任务记录包括的SQL语句执行任务。本发明实施例二提供的优选实施方式中,图5所示的任务处理装置包括的任务处理单元503,还用于在根据当前节点对应的任务记录包括的任务执行条件确定不满足所述任务执行条件时,将当前节点对应的任务的任务状态更新为等待,并在确定满足所述当前节点对应的任务执行条件后,根据所述当前节点对应的SQL语句执行任务。本发明实施例二提供的优选实施方式中,图5所示的任务处理装置包括的任务处理单元503,还用于在节点的任务记录还包括任务中止条件时,在根据当前节点对应的任务记录包括的任务执行条件确定满足所述任务执行条件之前,根据当前节点对应的任务记录包括的任务中止条件确定不满足所述任务中止条件。本发明实施例二提供的优选实施方式中,图5所示的任务处理装置包括的任务处理单元503,还用于在根据当前节点对应的任务记录包括的任务中止条件确定满足所述任务中止条件时,中止执行所述任务。应当理解,以上任务处理装置包括的单元仅为根据该装置实现的功能进行的逻辑划分,实际应用中,可以进行上述单元的叠加或拆分。并且该实施例二提供的任务处理装置所实现的功能与上述实施例一提供的任务处理方法流程一一对应,对于该装置所实现的更为详细的处理流程,在上述实施例一中已做详细描述,此处不再详细描述。通过本发明实施例提供的上述至少一个技术方案,在对任务进行处理时,首先获取预先生成的任务列表,该任务列表中包括通过父子节点关系表示的各任务之间的逻辑关系、对应每个节点的任务记录以及为各层作为下层节点的父节点的节点生成的扫描优先级信息;然后根据扫描优先级信息,针对对应每个优先级的各节点,分别对任务进行处理,即若对应当前优先级的当前节点为根节点,则根据当前节点对应的任务记录执行任务,若对15应当前优先级的当前节点不为根节点,在确定当前节点的父节点对应的任务均被成功执行时,根据当前节点的任务记录执行任务。根据该技术方案,可以通过父子节点关系表示的各任务之间的逻辑关系,相对于现有技术,能够更好地适用更多的任务逻辑关系结构,例如,树状逻辑关系结果、网状逻辑关系结构等;并且相对于现有技术,无需预先配置任务执行顺序,任务的执行不依赖于任务配置时规定的任务执行顺序,而根据为各层作为下层节点的父节点的节点生成的扫描优先级信息以及任务记录动态地确定当前节点的任务是否执行,从而提高了任务处理的灵活性。根据本发明实施例一提供的任务处理方法以及实施例二提供的任务处理装置,在取得以上技术效果的基础上,根据本发明实施例所采取的更为具体的技术手段,还可以进一步获得如下技术效果与现有技术相比,由于现有技术是事前定义好的严格的执行顺序,在进程并发调度上会因顺序的严格限制降低并发执行的效率,形成多个进程执行任务耗时与单进程执行任务相差无几的局面,而本发明实施例提供的技术方案,由于不依赖于任务配置时规定的任务执行顺序,因此,可以通过并行处理方式,以提高对任务处理的效率。与现有技术相比,由于现有技术完全基于节点编码的任务逻辑关系及任务执行顺序控制任务的执行过程,使日常维护中进行任务变更(如增加或删除)时,会对逻辑上有关联的任务的执行顺序产生影响,造成因为一项任务的编码发生变更,导致所有相关任务执行顺序受到影响,甚至会造成相关任务执行失败,而本发明实施例提供的技术方案,由于不依赖于任务配置时规定的任务执行顺序,因此,避免了对于任务执行顺序的更新及管理过程,提高了任务执行的成功率。与现有技术相比,由于现有技术所阐述的内容仅仅涉及到了对SQL任务的排序的处理,而未涉及对统计任务配置方面的支撑,包括SQL语句模板化支撑及对动态SQL的支撑。所谓模板化支撑,是指对同一类型的SQL任务,在任务定制列表中采用模板的形式进行表述,而无需全部列出所有要执行SQL语句;而动态SQL支撑是指对统计任务中包含的数据对象名称需根据实际情况动态生成后执行的支撑。而根据本发明实施例,配置了SQL语句模板,使许多形式相近的SQL语句在模板上变得完全一致,因此可以将模板一致的任务作为一条任务配置记录添加到任务配置列表中,然后通过对参数的定义与设计,使执行进程将该模板还原成待执行的多条SQL语句放入任务执行列表,而无需在维护过程中对任务配置列表逐一添加多条任务记录。与现有技术相比,本发明实施例还实现对统计任务间复杂逻辑关系的精确描述与解读,确保彼此依赖的统计任务在执行时依据正确的顺序被成功执行。使定制任务成功执行的可靠性得到加强,维护便捷性得到提高。实际统计环境中任务间的逻辑关系往往不限于树形结构,还包网状结构的逻辑关系,即除一个父节点任务对应多个子节点任务外,还包括一个子节点任务对应多个父节点任务的情况,此种情况以树形结构来表述本身就不精确,意味着对许多逻辑关系的忽略。而通过对任务执行条件的定义,记录下对所有父节点任务执行成功的检测条件,就可以使当前任务与多个父任务实现在逻辑上的关联。逻辑表述设计使执行顺序可以根据实际情况发生变化。在任务列表中一项任务先按照扫描顺序被执行进程扫描到,但如果任务执行条件不具备,则会被延期处理,而不是立即被处理,然后执行进程会继续检测其它未执行任务,发现任务执行条件符合去执行,待未执行任务全部被扫描过之后再从新检查原先执行条件不具备的任务现在是否具备任务执行条件。这使任务的执行顺序得到自动的调整,在保证执行进程高效性的同时,又能确保任务执行成功的可靠性。任务调度上的灵活设计,为人工干扰手段的设计提供了接口与条件,使用户能在已存在执行进程的情况下可根据需要增加进程的并行数量,并通过对任务状态的改变,实现对任务列表中任务的中止与启停,增强对任务执行的管控能力。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。权利要求1.一种任务处理方法,其特征在于,包括获取预先生成的任务列表,所述任务列表中包括通过父子节点关系表示的各任务之间的逻辑关系、对应每个节点的任务记录以及为各层作为下层节点的父节点的节点生成的扫描优先级信息;根据所述扫描优先级信息,针对对应每个优先级的各节点,分别执行若对应当前优先级的当前节点为根节点,则根据当前节点对应的任务记录执行任务;若对应当前优先级的当前节点不为根节点,在确定当前节点的父节点对应的任务均被成功执行时,根据当前节点的任务记录执行任务。2.如权利要求1所述的方法,其特征在于,预先生成任务列表的方式,包括获取任务配置列表,所述任务配置列表包括通过父子节点关系表示的各任务之间的逻辑关系信息、每个节点对应的任务的任务执行条件、源数据对象、目标数据对象以及通过自定义保留字段表示的SQL语句模板;根据所述逻辑关系信息,为各层作为下层节点的父节点的节点生成扫描优先级信息,其中,位于同一层的节点对应同一扫描优先级且该层节点的扫描优先级高于作为其子节点的下层节点的优先级,并将所述逻辑关系信息以及所述优先级信息加入任务列表;以及通过对所述节点对应的源数据对象以及目标数据对象解析确定所述源数据对象以及目标数据对象的对应关系,并将存在对应关系的源数据对象以及目标数据对象代入所述节点对应的SQL语句模板生成SQL语句,并将所述节点对应的SQL语句以及任务执行条件作为所述节点的任务记录加入任务列表。3.如权利要求2所述的方法,其特征在于,所述SQL语句模板包括用于表示源数据对象的自定义保留字段以及用于表示目标数据对象的自定义保留字段。4.如权利要求3所述的方法,其特征在于,所述任务配置列表还包括每个节点对应的存储资源信息以及远程数据库链接资源信息;且所述SQL语句模板还包括用于表示存储资源的自定义保留字段以及用于表示远程数据库链接资源的自定义保留字段;确定所述源数据对象以及目标数据对象的对应关系后,还包括将存在对应关系的源数据对象以及目标数据对象、所述节点对应的存储资源信息以及远程数据库链接资源信息代入所述节点对应的SQL语句模板生成SQL语句。5.如权利要求1所述的方法,其特征在于,在确定当前节点的父节点对应的任务均被成功执行之前,还包括从对应当前优先级的节点中获取一个节点的任务记录作为当前节点的任务记录;根据所述当前节点的任务记录确定所述当前节点对应的任务未执行且任务状态为初始状态。6.如权利要求1所述的方法,其特征在于,若未确定当前节点的父节点对应的任务均被成功执行,所述方法还包括将所述当前节点对应的任务的任务状态更新为等待;在确定当前优先级的所有节点对应的未执行任务的任务状态均为等待后,初始化所述未执行任务的任务状态为初始状态。7.如权利要求1所述的方法,其特征在于,节点的任务记录包括任务执行条件以及用于指示该任务执行过程的SQL语句;所述根据当前节点对应的任务记录执行任务,包括在根据当前节点对应的任务记录包括的任务执行条件确定满足所述任务执行条件时,根据当前节点对应的任务记录包括的SQL语句执行任务。8.如权利要求7所述的方法,其特征在于,在根据当前节点对应的任务记录包括的任务执行条件确定不满足所述任务执行条件时,还包括将当前节点对应的任务的任务状态更新为等待,并在确定满足所述当前节点对应的任务执行条件后,根据所述当前节点对应的SQL语句执行任务。9.如权利要求7所述的方法,其特征在于,节点的任务记录还包括任务中止条件;在根据当前节点对应的任务记录包括的任务执行条件确定满足所述任务执行条件之前,还包括根据当前节点对应的任务记录包括的任务中止条件确定不满足所述任务中止条件。10.如权利要求9所述的方法,其特征在于,在根据当前节点对应的任务记录包括的任务中止条件确定满足所述任务中止条件时,还包括中止执行所述任务。11.一种任务处理装置,其特征在于,包括任务列表生成单元,用于预先生成的任务列表;任务列表获取单元,用于获取所述任务列表生成单元预先生成的任务列表,所述任务列表中包括通过父子节点关系表示的各任务之间的逻辑关系、对应每个节点的任务记录以及为各层作为下层节点的父节点的节点生成的扫描优先级信息;任务处理单元,用于根据所述扫描优先级信息,针对对应每个优先级的各节点,分别执行若对应当前优先级的当前节点为根节点,则根据当前节点对应的任务记录执行任务;若对应当前优先级的当前节点不为根节点,在确定当前节点的父节点对应的任务均被成功执行时,根据当前节点的任务记录执行任务。12.如权利要求11所述的装置,其特征在于,所述任务列表生成单元,包括任务配置列表获取模块,用于获取任务配置列表,所述任务配置列表包括通过父子节点关系表示的各任务之间的逻辑关系信息、每个节点对应的任务的任务执行条件、源数据对象、目标数据对象以及通过自定义保留字段表示的SQL语句模板;扫描优先级生成模块,用于根据所述逻辑关系信息,为各层作为下层节点的父节点的节点生成扫描优先级信息,其中,位于同一层的节点对应同一扫描优先级且该层节点的扫描优先级高于作为其子节点的下层节点的优先级;SQL语句生成模块,用于通过对所述节点对应的源数据对象以及目标数据对象解析确定所述源数据对象以及目标数据对象的对应关系,并将存在对应关系的源数据对象以及目标数据对象代入所述节点对应的SQL语句模板生成SQL语句;任务列表记录模块,用于将所述扫描优先级生成模块生成的扫描优先级信息以及所述任务配置列表中包括的逻辑关系信息加入任务列表,以及将所述SQL语句生成模块生成的节点对应的SQL语句以及所述任务配置列表中包括的任务执行条件作为所述节点的任务记录加入任务列表。13.如权利要求12所述的装置,其特征在于,所述SQL语句生成模块,具体用于将存在对应关系的源数据对象以及目标数据对象代入所述节点对应的包括用于表示源数据对象的自定义保留字段以及用于表示目标数据对象的自定义保留字段的SQL语句模板生成SQL语句。14.如权利要求13所述的装置,其特征在于,所述SQL语句生成模块,具体用于在所述任务配置列表还包括每个节点对应的存储资源信息以及远程数据库链接资源信息,且所述SQL语句模板还包括用于表示存储资源的自定义保留字段以及用于表示远程数据库链接资源的自定义保留字段时,在确定所述源数据对象以及目标数据对象的对应关系后,将存在对应关系的源数据对象以及目标数据对象、所述节点对应的存储资源信息以及远程数据库链接资源信息代入所述节点对应的SQL语句模板生成SQL语句。15.如权利要求11所述的装置,其特征在于,所述任务处理单元,具体用于在确定当前节点的父节点对应的任务均被成功执行之前,从对应当前优先级的节点中获取一个节点的任务记录作为当前节点的任务记录;并根据所述当前节点的任务记录确定所述当前节点对应的任务未执行且任务状态为初始状态。16.如权利要求11所述的装置,其特征在于,所述任务处理单元,还用于在未确定当前节点的父节点对应的任务均被成功执行时,将所述当前节点对应的任务的任务状态更新为等待;并在确定当前优先级的所有节点对应的未执行任务的任务状态均为等待后,初始化所述未执行任务的任务状态为初始状态。17.如权利要求11所述的装置,其特征在于,所述任务处理单元,具体用于若对应当前优先级的当前节点为根节点,在根据当前节点对应的任务记录包括的任务执行条件确定满足所述任务执行条件时,根据当前节点对应的任务记录包括的SQL语句执行任务;若对应当前优先级的当前节点不为根节点,在确定当前节点的父节点对应的任务均被成功执行、并且根据当前节点对应的任务记录包括的任务执行条件确定满足所述任务执行条件时,根据当前节点对应的任务记录包括的SQL语句执行任务。18.如权利要求17所述的装置,其特征在于,所述任务处理单元,还用于在根据当前节点对应的任务记录包括的任务执行条件确定不满足所述任务执行条件时,将当前节点对应的任务的任务状态更新为等待,并在确定满足所述当前节点对应的任务执行条件后,根据所述当前节点对应的SQL语句执行任务。19.如权利要求17所述的装置,其特征在于,所述任务处理单元,还用于在节点的任务记录还包括任务中止条件时,在根据当前节点对应的任务记录包括的任务执行条件确定满足所述任务执行条件之前,根据当前节点对应的任务记录包括的任务中止条件确定不满足所述任务中止条件。20.如权利要求19所述的装置,其特征在于,所述任务处理单元,还用于在根据当前节点对应的任务记录包括的任务中止条件确定满足所述任务中止条件时,中止执行所述任务。全文摘要本发明公开了一种任务处理方法以及任务处理装置,主要技术方案包括获取预先生成的任务列表,所述任务列表中包括通过父子节点关系表示的各任务之间的逻辑关系、对应每个节点的任务记录以及为各层作为下层节点的父节点的节点生成的扫描优先级信息;根据扫描优先级信息,针对对应每个优先级的各节点,分别执行若对应当前优先级的当前节点为根节点,则根据当前节点对应的任务记录执行任务;若对应当前优先级的当前节点不为根节点,在确定当前节点的父节点对应的任务均被成功执行时,根据当前节点的任务记录执行任务。根据该技术方案,能够适用于更多的任务逻辑关系结构,并且任务执行过程不依赖于任务配置时规定的任务执行顺序。文档编号G06F17/30GK102467532SQ20101054135公开日2012年5月23日申请日期2010年11月12日优先权日2010年11月12日发明者曹璐,田力申请人:中国移动通信集团山东有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1