一种批量任务调度方法和系统技术方案

技术编号:39649158 阅读:6 留言:0更新日期:2023-12-09 11:17
本发明专利技术提供一种批量任务调度方法和系统

【技术实现步骤摘要】
一种批量任务调度方法和系统、电子设备、存储介质


[0001]本专利技术属于数据处理
,更具体的说,尤其涉及一种批量任务调度方法和系统

电子设备

存储介质


技术介绍

[0002]批量任务是应用程序对数据的批量处理,能够定时触发或者按配置好的周期自动运行,适合大数据量逻辑处理,在软件系统开发具有广泛的应用场景,例如银行的报表加工任务

大文件的生成和解析入库任务都是常见的批量任务,以上任务处理的数据规模大

造成系统资源开销大但与主要业务关联性弱,采用日终批量的方式处理可以减少白天对系统资源的占用,避免对白天正常的银行联机实时交易造成影响

[0003]随着数字化转型和大数据技术的发展,银行系统的批量任务处理的数据规模成指数增长,配置的批量任务类型和数量逐渐增多,任务之间的依赖关系越来越复杂,对运行批量任务集群的计算资源的要求也越来越高,所以提高当前集群有效资源利用率显得尤为重要

现阶段系统的批量任务处理集群每日运行的批量任务数量可能是数百个甚至更多,需要调度工具对任务进行编排,有序执行

目前常用的调度工具有任务调度框架
oozie、
批量工作流任务调度器
Azkaban
,以及,可编程

调度和监控的工作流平台
Airflow。
[0004]但是,调度工具
oozie、Azkaban
和<br/>Airflow
默认所有的任务的优先级是相同的,缺少对关键任务自定义优先级的支持,但是生产上存在一些需要普通任务让步,给关键任务插队的场景


技术实现思路

[0005]有鉴于此,本专利技术的目的在于提供一种批量任务调度方法和系统

电子设备

存储介质,用于通过设置任务的业务优先级和计算任务的动态权重来给任务分配合理的系统资源

[0006]本申请第一方面公开了一种批量任务调度方法,包括:
[0007]建立初始调度表,将满足依赖条件的所有任务写入所述初始调度表中;
[0008]设置各个任务类型的业务优先级;
[0009]根据各个所述任务的历史运行情况,确定各个所述任务类型中各个所述任务的动态权重;其中,所述历史运行情况包括各个所述任务的历史时间片时长;
[0010]依据所述业务优先级和所述动态权重,得到任务所分配的时间片时长;
[0011]将所述业务优先级

所述动态权重和所述时间片时长记录到所述初始调度表,得到任务调度表;并依据所述任务调度表进行调度

[0012]可选的,所述建立初始调度表,将满足依赖条件的所有任务写入所述初始调度表中,包括:
[0013]在关系型数据库中创建所述初始调度表;所述初始调度表包括:任务标识

任务名称

所述任务类型的业务优先级

任务的动态权重和所述任务所分配的时间片时长;
[0014]将满足所述依赖条件的任务对应的所述任务标识和所述任务名称,写入所述初始调度表中

[0015]可选的,所述根据各个所述任务的历史运行情况,确定各个所述任务类型中各个所述任务的动态权重,包括:
[0016]获取各个所述任务的历史运行情况中预设时间内的调度记录,提取各个历史任务所分配的时间片时长;
[0017]依据各个所述任务所分配的时间片时长,确定各个所述任务的动态权重

[0018]可选的,所述依据所述业务优先级和所述动态权重,得到任务所分配的时间片时长,包括:
[0019]针对任一所述任务,将所述任务对应的业务优先级和所述任务对应的动态权重的乘积,作为所述任务所分配的时间片时长

[0020]可选的,所述依据所述任务调度表进行调度,包括:
[0021]从第一行开始循环扫描所述任务调度表中记录,通过任务标识和任务行程取出当前记录对应的任务;其中,取出的记录满足所述依赖条件且处于等待状态;
[0022]通过相应调度框架下的任务启动命令,开始执行当前任务;在所述当前任务执行的同时开始计时,在所述当前任务的运行时间达到对应的时间片时长时,使用任务挂起
/
暂停命令中断当前任务的执行;
[0023]提取下一个任务返回执行通过相应调度框架下的任务启动命令,开始执行当前任务;在所述当前任务执行的同时开始计时,在所述当前任务的运行时间达到对应的时间片时长时,使用任务挂起
/
暂停命令中断当前任务的执行的步骤直至从上到下依次执行所述任务调度表中记录的所有任务,最后一个任务的时间片使用结束后扫描游标再次回到所述任务调度表中第一行记录,将之前挂起的任务恢复

[0024]本申请第二方面公开了一种批量任务调度系统,包括:
[0025]数据准备模块,用于建立初始调度表,将满足依赖条件的所有任务写入所述初始调度表中;设置各个任务类型的业务优先级;
[0026]数据计算模块,用于根据各个所述任务的历史运行情况,确定各个所述任务类型中各个所述任务的动态权重;其中,所述历史运行情况包括各个所述任务的历史时间片时长;依据所述业务优先级和所述动态权重,得到任务所分配的时间片时长;
[0027]数据应用模块,用于将所述业务优先级

所述动态权重和所述时间片时长记录到所述初始调度表,得到任务调度表;并依据所述任务调度表进行调度

[0028]可选的,所述数据准备模块用于建立初始调度表,将满足依赖条件的所有任务写入所述初始调度表中时,具体用于:
[0029]在关系型数据库中创建所述初始调度表;所述初始调度表包括:任务标识

任务名称

所述任务类型的业务优先级

任务的动态权重和所述任务所分配的时间片时长;
[0030]将满足所述依赖条件的任务对应的所述任务标识和所述任务名称,写入所述初始调度表中

[0031]可选的,所述数据计算模块用于根据各个所述任务的历史运行情况,确定各个所述任务类型中各个所述任务的动态权重时,具体用于:
[0032]获取各个所述任务的历史运行情况中预设时间内的调度记录,提取各个历史任务
所分配的时间片时长;
[0033]依据各个所述任务所分配的时间片时长,确定各个所述任务的动态权重

[0034]本申请第三方面公开了一种电子设备,包括:
[0035]一个或多个处理器;
[0036]存储装置,其上存储有一个或多个程序;
[0037]当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器实现如本申请第一方面中任一项所述的批量任务调度方法...

【技术保护点】

【技术特征摘要】
1.
一种批量任务调度方法,其特征在于,包括:建立初始调度表,将满足依赖条件的所有任务写入所述初始调度表中;设置各个任务类型的业务优先级;根据各个所述任务的历史运行情况,确定各个所述任务类型中各个所述任务的动态权重;其中,所述历史运行情况包括各个所述任务的历史时间片时长;依据所述业务优先级和所述动态权重,得到任务所分配的时间片时长;将所述业务优先级

所述动态权重和所述时间片时长记录到所述初始调度表,得到任务调度表;并依据所述任务调度表进行调度
。2.
根据权利要求1所述的批量任务调度方法,其特征在于,所述建立初始调度表,将满足依赖条件的所有任务写入所述初始调度表中,包括:在关系型数据库中创建所述初始调度表;所述初始调度表包括:任务标识

任务名称

所述任务类型的业务优先级

任务的动态权重和所述任务所分配的时间片时长;将满足所述依赖条件的任务对应的所述任务标识和所述任务名称,写入所述初始调度表中
。3.
根据权利要求1所述的批量任务调度方法,其特征在于,所述根据各个所述任务的历史运行情况,确定各个所述任务类型中各个所述任务的动态权,包括:获取各个所述任务的历史运行情况中预设时间内的调度记录,提取各个历史任务所分配的时间片时长;依据各个所述任务所分配的时间片时长,确定各个所述任务的动态权重
。4.
根据权利要求1所述的批量任务调度方法,其特征在于,所述依据所述业务优先级和所述动态权重,得到任务所分配的时间片时长,包括:针对任一所述任务,将所述任务对应的业务优先级和所述任务对应的动态权重的乘积,作为所述任务所分配的时间片时长
。5.
根据权利要求1所述的批量任务调度方法,其特征在于,所述依据所述任务调度表进行调度,包括:从第一行开始循环扫描所述任务调度表中记录,通过任务标识和任务行程取出当前记录对应的任务;其中,取出的记录满足所述依赖条件且处于等待状态;通过相应调度框架下的任务启动命令,开始执行当前任务;在所述当前任务执行的同时开始计时,在所述当前任务的运行时间达到对应的时间片时长时,使用任务挂起
/
暂停命令中断当前任务的执行;提取下一个任务返回执行通过相应调度框架下的任务启动命令,开始执行当前任务;在所述当前任务执行的同时开始计...

【专利技术属性】
技术研发人员:朱泓
申请(专利权)人:中国银行股份有限公司
类型:发明
国别省市:

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

1