【技术实现步骤摘要】
一种面向云管理平台的分布式任务调度方法及系统
[0001]本专利技术属于云平台领域,特别是涉及一种面向云管理平台的分布式任务调度方法及系统。
技术介绍
[0002]分布式任务调度是云管理平台与云资源池进行交互和资源管理的重要环节。通常,基于应用程序设计中的松耦合思想,云管理平台使用API接口与云资源池进行单向交互,除去一部分耗时较少和不关心返回结果的接口之外,大部分接口通常无法即时返回所有的结果信息,用于代替的是表示接口是否调用成功的状态字段和唯一标识某个资源的UUID等信息。云资源池处理不同类型的接口请求所需要的时间不同,如数据备份类操作通常耗时较长,而云管理平台需要及时获取任务的执行结果并向用户展示,因此通常需要对执行结果进行轮询操作。传统的阻塞式轮询会长时间占用工作线程,会影响异步任务的整体执行效率,这种现象在任务量较大时尤为明显,因此亟需一种高效率、低复杂度和状态可追踪的异步任务调度方法,调度方法的好坏直接影响云管理平台的性能和用户体验。
[0003]目前面向云管理平台的异步任务调度方法主要面临以下三个方面的问题:
[0004]1)处理时间不确定
[0005]云管理平台的异步任务具有种类多、数量大、逻辑复杂等特点,有相当一部分任务除依靠云管理平台本身的计算资源外,还需要云资源池的协助,根据云资源池的处理结果进行后续操作。而云资源池执行不同任务所需的时间不确定,尤其是备份、迁移类任务,所需的处理时间较长。
[0006]2)调度复杂度高
[0007]在面对大量不同类型的异步 ...
【技术保护点】
【技术特征摘要】
1.一种面向云管理平台的分布式任务调度方法,其特征在于,包括:将异步任务在定义时拆分为非轮询部分和轮询部分,业务系统通过消息中间件提交异步任务至分布式任务调度中心;所述分布式任务调度中心通过注册模块将异步任务写入并通过存储模块进行存储,并执行任务的非轮询部分;预设时间参数,根据所述时间参数,获得对应时间参数所需的调度次数及对异步任务的生命周期进行阶段划分;基于定时模块根据推送时间周期向调度模块推送调度信号,调度模块将所有满足执行条件的任务提交至分发模块,并由所述分发模块分发至执行模块进行执行,然后计算每一个任务的下一次调度时刻,更新至存储模块;通过实时执行模块在每一次执行操作结束后,根据预定义的成功或错误条件对任务状态进行匹配,如果满足条件,则立即结束该任务的调度,进入后处理阶段;反之,不做任何处理,等待下一次任务调度。2.根据权利要求1所述的一种面向云管理平台的分布式任务调度方法,其特征在于,所述分布式任务调度中心通过注册模块将异步任务写入并通过存储模块进行存储的过程包括,将所有异步任务在系统启动时进行注册,已注册的任务在以异步的方式进行调用时,按任务类型分发至对应的消息队列;基于调度模块,通过消息队列抓取任务并写入到存储模块后,等待定时模块的周期性调度信号。3.根据权利要求1所述的一种面向云管理平台的分布式任务调度方法,其特征在于,所述预设时间参数,根据所述时间参数,获得对应时间参数所需的调度次数及对异步任务的生命周期进行阶段划分的过程包括,设定最短时间,根据所述最短时间获得对应到达最短时间所需的调度次数;设定超时时间,根据所述超时时间获得对应到达超时时间所需调度次数;设定结束调度时间,根据所述结束调度时间获得对应到达结束调度时间所需调度次数;通过所述最短时间、超时时间、结束调度时间,将异步任务的生命周期划分为准备阶段、执行阶段和超时阶段。4.根据权利要求3所述的一种面向云管理平台的分布式任务调度方法,其特征在于,通过所述最短时间、超时时间、结束调度时间,将异步任务的生命周期划分为准备阶段、执行阶段和超时阶段的过程包括,以异步任务写入到存储模块的时间为0时刻,开始计算执行时间,到完成所述异步任务所需的最短时间T
min
为止,划分为准备阶段;T
min
=I
min
T其中,I
min
为异步任务到达T
min
时刻的调度次数,T为定时模块推送调度信号的推送时间周期;从T
min
时刻开始,到异步任务预定义的超时时间T
o
为止,划分为执行阶段;T
o
=I
o
T
其中,I
o
为异步任务到达T
o
时刻所需的调度次数,且满足I
o
>I
min
;从预定义的超时时间T
o
开始,到结束异步任务调度的时间T
max
为止,划分为超时阶段;T
max
=I
max
T其中,I
max
为该异步任务到达T
max
时刻所需的调度次数,且满足I
max
>I
o
>I
min
。5.根据权利要求1所述的一种面向云管理平台的分布式任务调度方法,其特征在于,所述调度模块将所有满足执行条件的任务提交至分发模块,并由所述分发模块分发至执行模块进行执行,然后计算每一个任务的下一次调度时刻,更新至存储模块的过程包括,基于定时模块根据推送时间周期向调度模块推送调度信号,将异步任务的执行时间量化为调度次数,并根据所述调度次数对异步任务进行调度;所述调度的过程包括:对于处在准备阶段的任务,调度模块执行异步任务中的非轮询部分,并在到达T
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。