一种任务调度方法、装置、设备及存储介质制造方法及图纸

技术编号:33875917 阅读:12 留言:0更新日期:2022-06-22 17:04
本申请公开一种任务调度方法、装置、设备及存储介质,该方法包括:确定第一待调度任务为串行任务时,将第一待调度任务注册至串行调度引擎;利用串行调度引擎对第一待调度任务中的目标任务进行调度,以发送目标任务至计算引擎进行计算处理,得到计算结果;若计算结果表征计算成功,利用串行调度引擎对第一待调度任务中的下一个任务进行调度。如此,在现有的并行调度引擎的基础上增加串行调度引擎,可将串行任务发送至串行调度引擎对其进行调度,即利用串行调度引擎实现了对串行任务的调度,解决了串行任务之间依赖的先后关系。了串行任务之间依赖的先后关系。了串行任务之间依赖的先后关系。

【技术实现步骤摘要】
一种任务调度方法、装置、设备及存储介质


[0001]本申请涉及数据处理技术,尤其涉及一种任务调度方法、装置、设备及存储介质。

技术介绍

[0002]数据处理工具中通常有多个任务需要处理,由于这些任务具备周期性,因此,对这些任务进行处理时,需要一个分布式调度引擎按照设定的时间周期去调度相应的任务,调度后发送至计算引擎对其进行计算处理。
[0003]任务类型一般包括并行任务和串行任务。现有的并行调度引擎只是针对并行任务进行调度,即严格按照设定的时间周期去调度任务,不考虑调度之间的依赖性。而串行任务指的是一个任务执行完毕后才能执行下一个任务,即需要考虑调度之间的依赖性。所以,现有的并行调度引擎获取的任务包括串行任务时,不能实现对串行任务的调度。

技术实现思路

[0004]为解决上述技术问题,本申请期望提供一种任务调度方法、装置、设备及存储介质。
[0005]本申请的技术方案是这样实现的:
[0006]第一方面,提供了一种任务调度方法,该方法包括:
[0007]确定第一待调度任务为串行任务时,将所述第一待调度任务注册至串行调度引擎;
[0008]利用所述串行调度引擎对所述第一待调度任务中的目标任务进行调度,以发送所述目标任务至计算引擎进行计算处理,得到计算结果;
[0009]若所述计算结果表征计算成功,利用所述串行调度引擎对所述第一待调度任务中的下一个任务进行调度。
[0010]上述方案中,所述将所述第一待调度任务注册至串行调度引擎之前,所述方法还包括:基于所述第一待调度任务的串行任务类型,在所述串行调度引擎中创建对应的串行调度队列;所述将所述第一待调度任务注册至串行调度引擎,包括:基于所述第一待调度任务的串行任务类型,将所述第一待调度任务写入对应的串行调度队列。
[0011]上述方案中,所述利用所述串行调度引擎对所述第一待调度任务中的目标任务进行调度,包括:基于所述第一待调度任务的串行任务类型,确定所述第一待调度任务对应的目标串行调度队列;利用所述串行调度引擎从所述目标串行调度队列中捞取出所述目标任务进行调度。
[0012]上述方案中,所述将所述第一待调度任务注册至串行调度引擎之前,所述方法还包括:基于所述第一待调度任务的串行任务类型,在所述串行调度引擎中创建对应的串行调度线程;所述利用所述串行调度引擎从所述目标串行调度队列中捞取出所述目标任务进行调度,包括:执行所述串行调度线程获取所述第一待调度任务对应的第一独占锁;若对所述第一待调度任务调度之前成功获取所述第一独占锁,则执行所述串行调度线程依次从对
应的所述串行调度队列中捞取出所述目标任务进行调度。
[0013]上述方案中,所述利用所述串行调度引擎对所述第一待调度任务中的下一个任务进行调度,包括:若所述串行调度队列不为空,利用所述串行调度引擎对所述第一待调度任务中的下一个任务进行调度;所述方法还包括:若所述串行调度队列为空,对所述第一待调度任务对应的第一独占锁进行释放操作。
[0014]上述方案中,所述确定第一待调度任务为串行任务之前,所述方法还包括:利用并行调度引擎获取所述第一待调度任务,并对所述第一待调度任务进行注册;利用所述并行调度引擎确定所述第一待调度任务的任务类型;所述确定第一待调度任务为串行任务时,将所述第一待调度任务注册至串行调度引擎,包括:利用所述并行调度引擎确定所述第一待调度任务为串行任务时,利用所述并行调度引擎将所述第一待调度任务注册至所述串行调度引擎。
[0015]上述方案中,所述方法还包括:利用所述并行调度引擎确定所述第一待调度任务为并行任务时,将所述第一待调度任务直接发送至所述计算引擎。
[0016]上述方案中,所述发送所述目标任务至计算引擎进行计算处理之前,所述方法还包括:将所述目标任务的格式从json格式转换为yaml格式。
[0017]上述方案中,所述方法还包括:若所述计算结果表征计算失败,停止对所述第一待调度任务的调度。
[0018]所述停止对所述第一待调度任务的调度,包括:利用所述串行调度引擎向并行调度引擎发送暂停调度指令,以使得所述并行调度引擎响应所述暂停调度指令,停止对所述第一待调度任务的调度。
[0019]上述方案中,所述停止对所述第一待调度任务的调度之后,所述方法还包括:确定未调度任务和/或调度失败任务,并将所述未调度任务和/或调度失败任务作为第二待调度任务;确定所述第二待调度任务为串行任务时,将所述第二待调度任务注册至所述串行调度引擎。
[0020]上述方案中,所述确定未调度任务和/或调度失败任务,包括:基于预设周期,执行补周期生产者线程以周期性对历史调度任务进行扫描;从所述历史调度任务中确定出未调度任务和/或调度失败任务。
[0021]上述方案中,所述确定所述第二待调度任务为串行任务时,将所述第二待调度任务注册至所述串行调度引擎,包括:确定所述第二待调度任务为串行任务时,将所述第二待调度任务写入对应的补周期队列。
[0022]上述方案中,所述将所述第二待调度任务写入对应的补周期队列之后,所述方法还包括:执行补周期消费者线程获取所述第二待调度任务对应的第二独占锁;若对所述第二待调度任务调度之前成功获取所述第二独占锁,则执行所述补周期消费者线程依次从对应的所述补周期队列中捞取出所述第二待调度任务中的目标任务进行调度。
[0023]上述方案中,所述方法还包括:确定所述第二待调度任务为并行任务时,将所述第二待调度任务发送至所述计算引擎。
[0024]第二方面,提供了一种任务调度装置,该装置包括:并行调度引擎、串行调度引擎和计算调度引擎;其中,
[0025]所述并行调度引擎,用于确定第一待调度任务为串行任务时,将所述第一待调度
任务注册至所述串行调度引擎;
[0026]所述串行调度引擎,用于对所述第一待调度任务中的目标任务进行调度,以发送所述目标任务至计算引擎进行计算处理;
[0027]所述计算调度引擎,用于对所述目标任务进行计算处理,若计算结果表征计算成功,利用所述串行调度引擎对所述第一待调度任务中的下一个任务进行调度。
[0028]第三方面,提供了一种任务调度设备,包括:处理器和配置为存储能够在处理器上运行的计算机程序的存储器,其中,所述处理器配置为运行所述计算机程序时,执行前述方法的步骤。
[0029]第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,其中,该计算机程序被处理器执行时实现前述方法的步骤。
[0030]采用上述技术方案,确定第一待调度任务为串行任务时,将第一待调度任务注册至串行调度引擎;利用串行调度引擎对第一待调度任务中的目标任务进行调度,以发送目标任务至计算引擎进行计算处理,得到计算结果;若计算结果表征计算成功,利用串行调度引擎对第一待调度任务中的下一个任务进行调度。如此,在现有的并行调度引擎的基础上增加串行调度引擎,可将串行任务发送至串行调度引擎对其进行调度,即利用串行调度引擎实现了对本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种任务调度方法,其特征在于,所述方法包括:确定第一待调度任务为串行任务时,将所述第一待调度任务注册至串行调度引擎;利用所述串行调度引擎对所述第一待调度任务中的目标任务进行调度,以发送所述目标任务至计算引擎进行计算处理,得到计算结果;若所述计算结果表征计算成功,利用所述串行调度引擎对所述第一待调度任务中的下一个任务进行调度。2.根据权利要求1所述的方法,其特征在于,所述将所述第一待调度任务注册至串行调度引擎之前,所述方法还包括:基于所述第一待调度任务的串行任务类型,在所述串行调度引擎中创建对应的串行调度队列;所述将所述第一待调度任务注册至串行调度引擎,包括:基于所述第一待调度任务的串行任务类型,将所述第一待调度任务写入对应的串行调度队列。3.根据权利要求2所述的方法,其特征在于,所述利用所述串行调度引擎对所述第一待调度任务中的目标任务进行调度,包括:基于所述第一待调度任务的串行任务类型,确定所述第一待调度任务对应的目标串行调度队列;利用所述串行调度引擎从所述目标串行调度队列中捞取出所述目标任务进行调度。4.根据权利要求3所述的方法,其特征在于,所述将所述第一待调度任务注册至串行调度引擎之前,所述方法还包括:基于所述第一待调度任务的串行任务类型,在所述串行调度引擎中创建对应的串行调度线程;所述利用所述串行调度引擎从所述目标串行调度队列中捞取出所述目标任务进行调度,包括:基于所述第一待调度任务的串行任务类型,确定所述第一待调度任务对应的目标串行调度线程;执行所述目标串行调度线程获取所述第一待调度任务对应的第一独占锁;若对所述第一待调度任务调度之前成功获取所述第一独占锁,则执行所述目标串行调度线程依次从对应的所述目标串行调度队列中捞取出所述目标任务进行调度。5.根据权利要求4所述的方法,其特征在于,所述利用所述串行调度引擎对所述第一待调度任务中的下一个任务进行调度,包括:若所述目标串行调度队列不为空,利用所述串行调度引擎对所述第一待调度任务中的下一个任务进行调度;所述方法还包括:若所述目标串行调度队列为空,对所述第一待调度任务对应的第一独占锁进行释放操作。6.根据权利要求1所述的方法,其特征在于,所述确定第一待调度任务为串行任务之前,所述方法还包括:利用并行调度引擎获取所述第一待调度任务,并对所述第一待调度任务进行注册;
利用所述并行调度引擎确定所述第一待调度任务的任务类型;所述确定第一待调度任务为串行任务时,将所述第一待调度任务注册至串行调度引擎,包括:利用所述并行调度引擎确定所述第一待调度任务为串行任务时,利用所述并行调度引擎将所述第一待调度任务注册至所述串行调度引擎。7.根据权利要求6所述的方法,其特征在于,所述方法还包括:利用所述并行调度引擎确定所述第一待调度任务为并行任务时,将所述第一待调度任务直接发送至所述计算引擎。8.根据权利要求1所述的方法,其特征在...

【专利技术属性】
技术研发人员:吴文兵
申请(专利权)人:中国移动通信集团有限公司
类型:发明
国别省市:

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

1