当前位置: 首页 > 专利查询>张家林专利>正文

一种分布式任务调度的方法和装置制造方法及图纸

技术编号:14348267 阅读:60 留言:0更新日期:2017-01-04 18:57
本发明专利技术提供了一种分布式任务调用的方法和装置,该方法包括:对各个任务节点的任务静态定义信息进行持久化存储;通过任务调度器监听任务触发条件,读取相应的任务静态定义信息;根据读取的任务静态定义信息生成任务实例;根据当前任务节点的前置任务节点的第一任务执行状态执行任务远程调度,并接收返回的任务执行结果信息;根据该任务执行结果信息中的第二任务执行状态和任务间依赖关系执行下游节点任务,并根据该任务执行结果信息更新上述任务实例。本发明专利技术实施例提供的分布式任务调度方法可以实现对各业务系统进行统一调度管理,各业务系统只需着重于任务本身业务处理的实现,从而降低了任务管理维护的复杂度和任务流执行过程中出错的风险。

【技术实现步骤摘要】

本专利技术涉及计算机信息
,具体而言,涉及一种分布式任务调度的方法和装置
技术介绍
目前,在大型的系统群中,包含着各个不同功能的业务系统,且这些业务系统可能都存在需要定时执行的任务,比如一个电商系统,它可能是由多个业务系统构成的,如订单业务系统,账户业务系统,支付业务系统;在物理架构上,整个电商系统就是由这些分散在不同物理部署上业务系统构成的一个系统群。随着任务的多样性增加,系统群所面对的任务处理量和复杂度逐渐增大,因此,如何提高任务处理性能便成为集群技术研究的一个重要目标之一,此时能够实现任务灵活配置的任务调度系统至关重要。当前,相关技术中提供了一种分布式任务调度的方法,该方法主要包括:通过任务设置模块将各任务节点的相关配置信息发送到任务调度系统;该任务调度系统收到配置信息后进行存储;待任务触发条件满足时提取需要执行的任务;任务执行完毕,更新任务信息到存储并等待下一次触发。在该方法中,任务调度系统包括多个任务调度器,针对业务系统中多个不同的任务进行调度。在实现本专利技术的过程中,专利技术人发现相关技术中至少存在以下问题:相关技术中的内嵌于各系统中的任务调度方式一般针对于处理自己系统范围内的任务,然而,存在于系统群的各业务系统间的任务在业务层面和系统层面都可能存在依赖性,因此,每个业务系统分别维护自己的任务调度就会增加任务管理维护的复杂度,同时也会使任务流程执行也会变得混乱。
技术实现思路
有鉴于此,本专利技术实施例的目的在于提供一种分布式任务调度的方法和装置,以解决任务管理维护的复杂度增加以及任务流程执行混乱的问题,实现将任务调度,流程控制的管理从各业务系统间剥离出来,形成一种对各业务系统任务统一调度管理的方法,降低任务管理维护的复杂度以及任务流执行过程中出错的风险。第一方面,本专利技术实施例提供了一种分布式任务调度的方法,该方法包括:对各个任务节点的任务静态定义信息进行持久化存储,其中,所述任务静态定义信息包括:任务基本信息、任务间依赖关系和任务调度信息;通过任务调度器监听任务触发条件,检测到所述任务触发条件则读取相应的任务静态定义信息,并确定所述任务触发条件对应的当前任务节点;根据读取的所述任务静态定义信息生成任务实例,并对所述任务实例进行持久化存储;根据所述任务间依赖关系调取所述当前任务节点的前置任务节点对应的任务实例中的任务执行状态;根据调取的所述第一任务执行状态执行任务远程调度,并接收返回的任务执行结果信息;根据所述任务执行结果信息中的第二任务执行状态和所述任务间依赖关系执行下游节点任务,并根据所述任务执行结果信息更新所述任务实例。结合第一方面,本专利技术实施例提供了第一方面的第一种可能的实施方式,其中所述对各个任务节点的任务静态定义信息进行持久化存储之前,还包括:采用有向无环图结构根据各个任务节点间的依赖性和任务的执行流向确定任务间依赖关系,其中,所述有向无环图结构包括:将在固定周期重复运行的任务流定义并描述为一个在所述固定周期内的有向无环图,所述有向图无环图中的每个任务看作一个任务节点,所述有向图无环图中的每个边看作所述任务间依赖关系;根据各个所述任务节点对应的远程调度时的调用方法和参数信息确定相应的任务调度信息,其中,所述调用方法由任务执行方法的提供方提供,所述参数信息包括任务执行方法的提供方要求的输入参数。结合第一方面,本专利技术实施例提供了第一方面的第二种可能的实施方式,其中,所述根据调取的所述第一任务执行状态执行任务远程调度,并接收返回的任务执行结果信息,包括:判断调取的所述第一任务执行状态是否全部为成功;若否,则将所述任务实例的第一任务执行状态设置为失败,并终止所述任务实例对应的任务周期,直到通过任务调度器检测到下一个任务触发条件;若是,则利用远程标准开放调用接口根据所述任务调用信息中调用方法类型调用相应的远程地址,根据所述远程地址执行任务远程调度,并接收返回的任务执行结果信息,其中,所述远程标准开放调用接口的数据结构包括以下中的一种或者多种:任务号、业务日期、回调方式、或者调用参数,所述任务执行结果信息的数据结构包括以下中的一种或者多种:任务号、业务日期、或者任务执行状态。结合第一方面,本专利技术实施例提供了第一方面的第三种可能的实施方式,其中,所述远程地址执行任务远程调度,并接收返回的任务执行结果信息,包括:当所述任务基本信息中的同步标志为异步调用且任务调用方在任务执行方法提供方执行完成时,接收所述任务执行方法提供方根据所述远程标准开放调用接口携带的回调方法返回的所述任务执行结果信息。结合第一方面,本专利技术实施例提供了第一方面的第四种可能的实施方式,其中,所述根据所述任务执行结果信息中的第二任务执行状态和所述任务间依赖关系执行下游节点任务,并根据所述任务执行结果信息更新所述任务实例,包括:检查返回的所述任务执行结果信息中的第二任务执行状态是否为成功;若否,则控制任务调度器根据任务的重试属性对任务进行重试调度,直到任务成功或重试次数大于预设阈值,并根据所述任务执行结果信息更新所述任务实例;若是,则根据所述任务间依赖关系执行下游节点任务,并根据所述任务执行结果信息更新所述任务实例,其中,所述任务实例的数据结构包括以下中的一种或者多种:任务号、批次序号、第一任务执行状态、任务开始时间、任务结束时间、或者重试次数,所述批次序号表示所述任务实例的周期编号。第二方面,本专利技术实施例还提供了一种分布式任务调度的装置,包括:信息存储模块,用于对各个任务节点的任务静态定义信息进行持久化存储,其中,所述任务静态定义信息包括:任务基本信息,任务间依赖关系和任务调度信息;信息读取模块,用于通过任务调度器监听任务触发条件,检测到所述任务触发条件则读取相应的任务静态定义信息,并确定所述任务触发条件对应的当前任务节点;任务实例生成模块,用于根据读取的所述任务静态定义信息生成任务实例,并对所述任务实例进行持久化存储;第一任务执行状态调取模块,用于根据所述任务间依赖关系调取所述当前任务节点的前置任务节点所对应的任务实例中的第一任务执行状态;任务调度模块,用于根据调取的所述第一任务执行状态执行任务远程调度,并接收返回的任务执行结果信息;任务实例更新模块,用于根据所述任务执行结果信息中的第二任务执行状态和所述任务间依赖关系执行下游节点任务,并根据所述任务执行结果信息更新所述任务实例。结合第二方面,本专利技术实施例提供了第二方面的第一种可能的实施方式,其中,所述装置,还包括:任务间依赖关系确定模块,用于采用有向无环图结构根据各个任务节点间的依赖性和任务的执行流向确定任务间依赖关系,其中,所述有向无环图结构包括:将在固定周期重复运行的任务流定义并描述为一个在所述固定周期内的有向无环图,所述有向图无环图中的每个任务看作一个任务节点,所述有向图无环图中的每个边看作所述任务间依赖关系;任务调用信息确定模块,用于根据各个所述任务节点对应的远程调度时的调用方法和参数信息确定相应的任务调度信息,其中,所述调用方法由任务执行方法的提供方提供,所述参数信息包括任务执行方法的提供方要求的输入参数。结合第二方面,本专利技术实施例提供了第二方面的第二种可能的实施方式,其中,所述任务调度模块包括:判断单元:用于判断调取的所述第一任务执行状态是否全部为成功;第一本文档来自技高网...
一种分布式任务调度的方法和装置

【技术保护点】
一种分布式任务调度的方法,其特征在于,所述方法包括:对各个任务节点的任务静态定义信息进行持久化存储,其中,所述任务静态定义信息包括:任务基本信息、任务间依赖关系和任务调度信息;通过任务调度器监听任务触发条件,检测到所述任务触发条件则读取相应的任务静态定义信息,并确定所述任务触发条件对应的当前任务节点;根据读取的所述任务静态定义信息生成任务实例,并对所述任务实例进行持久化存储;根据所述任务间依赖关系调取所述当前任务节点的前置任务节点对应的任务实例中的第一任务执行状态;根据调取的所述第一任务执行状态执行任务远程调度,并接收返回的任务执行结果信息;根据所述任务执行结果信息中的第二任务执行状态和所述任务间依赖关系执行下游节点任务,并根据所述任务执行结果信息更新所述任务实例。

【技术特征摘要】
1.一种分布式任务调度的方法,其特征在于,所述方法包括:对各个任务节点的任务静态定义信息进行持久化存储,其中,所述任务静态定义信息包括:任务基本信息、任务间依赖关系和任务调度信息;通过任务调度器监听任务触发条件,检测到所述任务触发条件则读取相应的任务静态定义信息,并确定所述任务触发条件对应的当前任务节点;根据读取的所述任务静态定义信息生成任务实例,并对所述任务实例进行持久化存储;根据所述任务间依赖关系调取所述当前任务节点的前置任务节点对应的任务实例中的第一任务执行状态;根据调取的所述第一任务执行状态执行任务远程调度,并接收返回的任务执行结果信息;根据所述任务执行结果信息中的第二任务执行状态和所述任务间依赖关系执行下游节点任务,并根据所述任务执行结果信息更新所述任务实例。2.根据权利要求1所述的方法,其特征在于,所述对各个任务节点的任务静态定义信息进行持久化存储之前,还包括:采用有向无环图结构根据各个任务节点间的依赖性和任务的执行流向确定任务间依赖关系,其中,所述有向无环图结构包括:将在固定周期重复运行的任务流定义并描述为一个在所述固定周期内的有向无环图,所述有向图无环图中的每个任务看作一个任务节点,所述有向图无环图中的每个边看作所述任务间依赖关系;根据各个所述任务节点对应的远程调度时的调用方法和参数信息确定相应的任务调度信息,其中,所述调用方法由任务执行方法提供方提供,所述参数信息包括任务执行方法提供方要求的输入参数。3.根据权利要求1所述的方法,其特征在于,所述根据调取的所述第一任务执行状态执行任务远程调度,并接收返回的任务执行结果信息,包括:判断调取的所述第一任务执行状态是否全部为成功;若否,则将所述任务实例的第一任务执行状态设置为失败,并终止所述任务实例对应的任务周期,直到通过任务调度器检测到下一个任务触发条件;若是,则利用远程标准开放调用接口根据所述任务调用信息中调用方法类型调用相应的远程地址,根据所述远程地址执行任务远程调度,并接收返回的任务执行结果信息,其中,所述远程标准开放调用接口的数据结构包括以下中的一种或者多种:任务号、业务日期、回调方式、或者调用参数,所述任务执行结果信息的数据结构包括以下中的一种或者多种:任务号、业务日期、或者任务执行状态。4.根据权利要求3所述的方法,其特征在于,所述根据所述远程地址执行任务远程调度,并接收返回的任务执行结果信息,包括:当所述任务基本信息中的同步标志为异步调用且任务调用方在任务执行方法提供方执行完成时,接收所述任务执行方法提供方根据所述远程标准开放调用接口携带的回调方法返回的所述任务执行结果信息。5.根据权利要求1所述的方法,其特征在于,所述根据所述任务执行结果信息中的第二任务执行状态和所述任务间依赖关系执行下游节点任务,并根据所述任务执行结果信息更新所述任务实例,包括:检查返回的所述任务执行结果信息中的第二任务执行状态是否为成功;若否,则控制任务调度器根据任务的重试属性对任务进行重试调度,直到任务成功或重试次数大于预设阈值,并根据所述任务执行结果信息更新所述任务实例;若是,则根据所述任务间依赖关系执行下游节点任务,并根据所述任务执行结果信息更新所述任务实例,其中,所述任务实例的数据结构包括以下中的一种或者多种:任务号、批次序号、第一任务执行...

【专利技术属性】
技术研发人员:张家林
申请(专利权)人:张家林
类型:发明
国别省市:四川;51

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

1