一种分布式任务管理系统与方法技术方案

技术编号:15398091 阅读:180 留言:0更新日期:2017-05-22 11:02
本发明专利技术公开了一种分布式任务管理系统与方法,用于减少任务的重复导致的资源浪费,提高查询效率,所述系统包括:任务监控模块,用于记录系统所有任务的任务标识和任务的执行状态;数据库,用于存储系统所有任务的任务标识和查询标识之间的一一对应关系,以及已执行完成任务的执行结果;生成模块,用于生成当前任务请求;任务预处理模块,用于当前任务为查询任务时,从所述当前任务请求中读取当前任务的查询条件并确定所述当前任务的查询标识;在数据库中查找该查询标识对应的任务标识,若找到,则从所述任务监控模块中读取找到的任务标识对应任务的执行状态,当状态为完成时,从数据库中读取所述任务标识对应任务的执行结果。

Distributed task management system and method

The invention discloses a distributed task management system and method for reduce the waste of resources caused by repeated tasks, improve the query efficiency, the system includes task monitoring module, for all tasks and recording system task identity and task execution status; data base, correspondence between task identification and identification of all queries the task of storage system, and has completed the task execution results; generating module is used to generate the current request task; task processing module, for the current task for the query task, read the current task from the current task request query conditions and determine the current task of the query to find the query ID identification; the corresponding task ID, if found in the database, read to find the task of identification from the task of monitoring module The execution state of the corresponding task, when the state is completed, reads the task identity from the database, corresponding to the execution result of the task.

【技术实现步骤摘要】
一种分布式任务管理系统与方法
本专利技术涉及信息
,尤其涉及一种分布式任务管理系统与方法。
技术介绍
随着WEB应用越来越普及与业务的多元化,业务的复杂性也随之增加。大型的网络应用越来越多的使用异步事务处理机制处理复杂的业务逻辑,对应于异步事务处理此机制的任务管理系统也越来越受到各网络企业的青睐。任务管理系统(Task/JobManagement)被普遍应用与Web应用中,其目的是让复杂的业务逻辑放在后台执行并统一管理这些业务相关的任务,并从任务申请开始监控其执行直至其执行结束。任务管理系统是一个概括性的系统架构,常常是由多种组件组合而成,但每种系统中必定包括一种或多种消息传递机制。所述消息是基于程序对于任务的理解,任务是一个抽象的概念,具体来讲就是某一申请者(申请者可以是Web服务器,一个定时任务程序等)为了获得某一特定程序的执行结果而提交给某一处理者的执行该任务所需信息的一组数据,该任务在传输过程中的信息实体被称为“消息”。分布式的任务管理系统实现有许多种,但基本架构都是基于生产者/消费者模型与线程池。生产者/消费者模型详细来讲就是生产者(可能是任务的申请者,也可能是接收任务并进行预处理的程序)生产出一项任务,并将任务放入一个两方共享的区域,消费者(处理者)从区域中读取此项任务,加以处理并返回运行的结果。
技术实现思路
专利技术人在研究过程中发现,目前所有的任务管理系统来说,均会有查询任务,基于目前的任务管理系统的任务执行机制来说,每当有一个任务生成时,系统就会将该任务分配到某一处理者执行,得到执行结果。而对于查询系统历史数据的业务系统来说,由于历史数据被记录后数据就不会改变直至被清理,因此使用相同的条件查询历史数据所得的结果是一致的,而在现有的任务管理系统的运行机制基础上,相同的查询会被重复执行,占用系统资源,造成系统资源的浪费,而且一般任务执行后均会保存执行结果,保存多分相同的数据也会浪费较多的系统资源。为了解决现有的任务管理系统中存在的重复查询导致系统资源浪费的技术问题,本专利技术提供一种分布式任务管理系统与方法,减少系统的重复查询带来的资源浪费,本专利技术提供了如下技术方案:一种分布式任务管理系统,包括:任务监控模块,用于记录系统所有任务的任务标识和任务的执行状态;数据库,用于存储系统所有任务的任务标识和查询标识之间的一一对应关系,以及已执行完成任务的执行结果;所述系统还包括:生成模块,用于生成当前任务请求;任务预处理模块,用于根据所述当前任务请求中携带的任务类型确定当前任务为查询任务时,从所述当前任务请求中读取当前任务的查询条件;根据查询条件确定所述当前任务的查询标识;在数据库中查找该查询标识对应的任务标识,若找到,则从所述任务监控模块中读取找到的任务标识对应任务的执行状态,当状态为完成时,从数据库中读取所述任务标识对应任务的执行结果作为最终的查询结果。本专利技术还提供一种分布式任务管理方法,包括:记录系统所有任务的任务标识和任务的执行状态;存储系统所有任务的任务标识和查询标识之间的一一对应关系,以及已执行完成任务的执行结果;所述方法还包括:生成当前任务请求;根据所述当前任务请求中携带的任务类型确定当前任务为查询任务时,从所述当前任务请求中读取当前任务的查询条件;根据查询条件确定所述当前任务的查询标识;在数据库中查找该查询标识对应的任务标识,若找到,则从所述任务监控模块中读取找到的任务标识对应任务的执行状态,当状态为完成时,从数据库中读取所述任务标识对应任务的执行结果。由本专利技术提供的技术方案可知,当前任务生成时,首先对当前任务进行查询检索即确定是否有与当前任务的执行结果相同的历史任务,具体为在确定当前任务是查询任务时,查找历史查询任务中查询条件相同的任务,在找到的任务已执行完成的情况下,直接读取该任务的结果返回即可。本专利技术中,通过对新生成任务进行查询检索,减少查询任务的重复执行,减少对系统资源的浪费,对于同一份结果只需保存一次即可,重复查询可以通过直接读取的方式快速获得进一步减少对系统资源的浪费,提高资源利用率。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术提供的一种分布式任务管理系统实施例1的结构示意图;图2为本专利技术提供的一种分布式任务管理系统实施例2的结构示意图;图3为本专利技术提供的一种分布式任务管理系统中任务预处理模块的工作原理图;图4为本专利技术提供的一种分布式任务管理系统在实际应用中的一种可能的架构图;图5为如4所示的系统架构图对应的一种实际部署图;图6为本专利技术提供的一种分布式任务管理方法实施例1的流程图。具体实施方式为使本专利技术的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。下面对本专利技术提供的技术方案做详细公开的说明,首先,参考图1所示,为本专利技术提供的一种分布式任务管理系统实施例1的结构示意图,所述系统可以包括:任务监控模块11、数据库12、生成模块13、任务预处理模块14;其中,所述任务监控模块11,用于记录系统所有任务的任务标识和任务的执行状态;所述系统所有的任务包括历史执行的任务和当前正在执行的任务,任务的执行状态包括未执行结束和已执行结束,每一个任务均对应一个任务标识。所述数据库12,用于存储系统所有任务的任务标识和查询标识之间的一一对应关系,以及已执行完成任务的执行结果;对于一个查询任务来说,既有任务标识也有查询标识,所述数据库存储的是任务标识与查询标识对,以及,已经执行完成的任务的执行结果。所述生成模块12,用于生成当前任务请求;所述任务请求中包括任务的类型、当任务的类型为查询时,任务请求中还包括查询条件(比如查询某一段时间内的数据即时间条件)。所述任务预处理模块13,用于根据所述当前任务请求中携带的任务类型确定当前任务为查询任务时,从所述当前任务请求中读取当前任务的查询条件;根据查询条件确定所述当前任务的查询标识;在数据库中查找该查询标识,若所述数据库中存在所述查询标识,则从所述任务监控模块中读取所述查询标识对应的任务的执行状态,当状态为完成时,从数据库中读取所述任务标识对应任务的执行结果作为最终的查询结果。需要说明的是,针对不同的系统,查询任务的查询条件不同,比如对于一个安全审计系统来说,一个查询类的任务对应的查询条件可以分解为时间类型的条件、限制类型的条件、内容过滤类条件和/或系统相关类条件等。在根据查询条件计算查询标识时,可以依据当前任务对应的所有查询条件中的任一个或多个查询条件。本实施例提供的技术方案中,通过对新生成任务进行查询检索,减少查询任务的重复执行,减少对系统资源的浪费,对于同一份结果只需保存一次即可,重复查询可以通过直接读取的方式快速获得进一步减少对系统资源的浪费,提高资源利用率。在实施例1中,本文档来自技高网...
一种分布式任务管理系统与方法

【技术保护点】
一种分布式任务管理系统,其特征在于,所述系统包括:任务监控模块,用于记录系统所有任务的任务标识和任务的执行状态;数据库,用于存储系统所有任务的任务标识和查询标识之间的一一对应关系,以及已执行完成任务的执行结果;所述系统还包括:生成模块,用于生成当前任务请求;任务预处理模块,用于根据所述当前任务请求中携带的任务类型确定当前任务为查询任务时,从所述当前任务请求中读取当前任务的查询条件;根据查询条件确定所述当前任务的查询标识;在数据库中查找该查询标识对应的任务标识,若找到,则从所述任务监控模块中读取找到的任务标识对应任务的执行状态,当状态为完成时,从数据库中读取所述任务标识对应任务的执行结果作为最终的查询结果。

【技术特征摘要】
1.一种分布式任务管理系统,其特征在于,所述系统包括:任务监控模块,用于记录系统所有任务的任务标识和任务的执行状态;数据库,用于存储系统所有任务的任务标识和查询标识之间的一一对应关系,以及已执行完成任务的执行结果;所述系统还包括:生成模块,用于生成当前任务请求;任务预处理模块,用于根据所述当前任务请求中携带的任务类型确定当前任务为查询任务时,从所述当前任务请求中读取当前任务的查询条件;根据查询条件确定所述当前任务的查询标识;在数据库中查找该查询标识对应的任务标识,若找到,则从所述任务监控模块中读取找到的任务标识对应任务的执行状态,当状态为完成时,从数据库中读取所述任务标识对应任务的执行结果作为最终的查询结果。2.根据权利要求1所述的系统,其特征在于,当所述分布式任务管理系统应用于安全审计系统中时,所述查询条件包括时间类条件、限制类条件、内容过滤类条件和/或系统相关类条件。3.根据权利要求2所述的系统,其特征在于,所述管理系统还包括:条件检索模块,用于找到的任务标识为多个、且多个任务标识对应的多个任务的执行状态不是均未完成,则在所述多个任务中选择时间类条件、限制类条件均包含当前任务查询条件的任务组成第一任务集;在第一任务集中选择时间类条件与当前任务的时间类条件最接近的任务作为目标任务;相应的,所述任务预处理模块,还用于从所述数据库中读取目标任务的执行结果;在所述执行结果中取出不符合当前任务的时间类条件的部分,并依据当前任务的限制类条件对结果进行截取作为最终的查询结果。4.根据权利要求1或3任一项所述的系统,所述管理系统应用于安全审计系统中,其特征在于,当所述数据库中不存在所述查询标识、从数据库中查找到的任务的状态为未完成、或条件检索模块未得到第一任务集时,所述系统还包括:任务分配模块,用于根据当前任务的查询条件确定当前任务的查询级别;将当前任务缓存到其查询级别对应的消息通道队列中,以便于与所述查询级别对应的任务执行模块从消息通道队列中提取当前任务;任务执行模块,用于执行相应级别的任务并将执行结果存储到所述数据库。5.根据权利要求4所述的系统,其特征在于,确定当前任务的查询级别的公式为:其中,T(e-b)*t为时间类条件级别,b、e分别为待查询内容对应时间段的起止时间,T为时间级别映射函数,t为时间条件预设的权重;为限制类条件级别,si为每一项限制性条件值,ki为每一项限制性条件的默认最小值,Si为每一项限制性条件级别映射函数,s为限制性条件预设的权重;为内容过滤类条件级别,Wi为...

【专利技术属性】
技术研发人员:许晨晖
申请(专利权)人:北京天融信软件有限公司北京天融信网络安全技术有限公司北京天融信科技有限公司
类型:发明
国别省市:北京,11

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

1