CN117149388A - 一种批量任务调度方法和系统、电子设备、存储介质 - Google Patents
一种批量任务调度方法和系统、电子设备、存储介质 Download PDFInfo
- Publication number
- CN117149388A CN117149388A CN202311138677.7A CN202311138677A CN117149388A CN 117149388 A CN117149388 A CN 117149388A CN 202311138677 A CN202311138677 A CN 202311138677A CN 117149388 A CN117149388 A CN 117149388A
- Authority
- CN
- China
- Prior art keywords
- task
- tasks
- time slice
- scheduling
- schedule
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 39
- 238000003860 storage Methods 0.000 title claims abstract description 24
- 238000004364 calculation method Methods 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 9
- 238000002360 preparation method Methods 0.000 claims description 9
- 239000000725 suspension Substances 0.000 claims description 7
- 238000012545 processing Methods 0.000 description 11
- 230000008569 process Effects 0.000 description 7
- 230000003287 optical effect Effects 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000013468 resource allocation Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000033772 system development Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/484—Precedence
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5021—Priority
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供一种批量任务调度方法和系统、电子设备、存储介质,可应用于金融领域或其他领域。该方法包括:建立初始调度表,将满足依赖条件的所有任务写入初始调度表中;设置各个任务类型的业务优先级;根据各个任务的历史运行情况,确定各个任务类型中各个任务的动态权重;依据业务优先级和动态权重,得到任务所分配的时间片时长;将业务优先级、动态权重和时间片时长记录到初始调度表,得到任务调度表;并依据任务调度表进行调度;也即,在时间片轮转调度策略的基础上,通过设置任务的业务优先级和计算任务的动态权重来给任务分配合理的系统资源,并且可以实现自定义的关键任务对资源的抢占,提高了系统的资源利用效率和灵活性。
Description
技术领域
本发明属于数据处理技术领域,更具体的说,尤其涉及一种批量任务调度方法和系统、电子设备、存储介质。
背景技术
批量任务是应用程序对数据的批量处理,能够定时触发或者按配置好的周期自动运行,适合大数据量逻辑处理,在软件系统开发具有广泛的应用场景,例如银行的报表加工任务、大文件的生成和解析入库任务都是常见的批量任务,以上任务处理的数据规模大、造成系统资源开销大但与主要业务关联性弱,采用日终批量的方式处理可以减少白天对系统资源的占用,避免对白天正常的银行联机实时交易造成影响。
随着数字化转型和大数据技术的发展,银行系统的批量任务处理的数据规模成指数增长,配置的批量任务类型和数量逐渐增多,任务之间的依赖关系越来越复杂,对运行批量任务集群的计算资源的要求也越来越高,所以提高当前集群有效资源利用率显得尤为重要。现阶段系统的批量任务处理集群每日运行的批量任务数量可能是数百个甚至更多,需要调度工具对任务进行编排,有序执行。目前常用的调度工具有任务调度框架oozie、批量工作流任务调度器Azkaban,以及,可编程、调度和监控的工作流平台Airflow。
但是,调度工具oozie、Azkaban和Airflow默认所有的任务的优先级是相同的,缺少对关键任务自定义优先级的支持,但是生产上存在一些需要普通任务让步,给关键任务插队的场景。
发明内容
有鉴于此,本发明的目的在于提供一种批量任务调度方法和系统、电子设备、存储介质,用于通过设置任务的业务优先级和计算任务的动态权重来给任务分配合理的系统资源。
本申请第一方面公开了一种批量任务调度方法,包括:
建立初始调度表,将满足依赖条件的所有任务写入所述初始调度表中;
设置各个任务类型的业务优先级;
根据各个所述任务的历史运行情况,确定各个所述任务类型中各个所述任务的动态权重;其中,所述历史运行情况包括各个所述任务的历史时间片时长;
依据所述业务优先级和所述动态权重,得到任务所分配的时间片时长;
将所述业务优先级、所述动态权重和所述时间片时长记录到所述初始调度表,得到任务调度表;并依据所述任务调度表进行调度。
可选的,所述建立初始调度表,将满足依赖条件的所有任务写入所述初始调度表中,包括:
在关系型数据库中创建所述初始调度表;所述初始调度表包括:任务标识、任务名称、所述任务类型的业务优先级、任务的动态权重和所述任务所分配的时间片时长;
将满足所述依赖条件的任务对应的所述任务标识和所述任务名称,写入所述初始调度表中。
可选的,所述根据各个所述任务的历史运行情况,确定各个所述任务类型中各个所述任务的动态权重,包括:
获取各个所述任务的历史运行情况中预设时间内的调度记录,提取各个历史任务所分配的时间片时长;
依据各个所述任务所分配的时间片时长,确定各个所述任务的动态权重。
可选的,所述依据所述业务优先级和所述动态权重,得到任务所分配的时间片时长,包括:
针对任一所述任务,将所述任务对应的业务优先级和所述任务对应的动态权重的乘积,作为所述任务所分配的时间片时长。
可选的,所述依据所述任务调度表进行调度,包括:
从第一行开始循环扫描所述任务调度表中记录,通过任务标识和任务行程取出当前记录对应的任务;其中,取出的记录满足所述依赖条件且处于等待状态;
通过相应调度框架下的任务启动命令,开始执行当前任务;在所述当前任务执行的同时开始计时,在所述当前任务的运行时间达到对应的时间片时长时,使用任务挂起/暂停命令中断当前任务的执行;
提取下一个任务返回执行通过相应调度框架下的任务启动命令,开始执行当前任务;在所述当前任务执行的同时开始计时,在所述当前任务的运行时间达到对应的时间片时长时,使用任务挂起/暂停命令中断当前任务的执行的步骤直至从上到下依次执行所述任务调度表中记录的所有任务,最后一个任务的时间片使用结束后扫描游标再次回到所述任务调度表中第一行记录,将之前挂起的任务恢复。
本申请第二方面公开了一种批量任务调度系统,包括:
数据准备模块,用于建立初始调度表,将满足依赖条件的所有任务写入所述初始调度表中;设置各个任务类型的业务优先级;
数据计算模块,用于根据各个所述任务的历史运行情况,确定各个所述任务类型中各个所述任务的动态权重;其中,所述历史运行情况包括各个所述任务的历史时间片时长;依据所述业务优先级和所述动态权重,得到任务所分配的时间片时长;
数据应用模块,用于将所述业务优先级、所述动态权重和所述时间片时长记录到所述初始调度表,得到任务调度表;并依据所述任务调度表进行调度。
可选的,所述数据准备模块用于建立初始调度表,将满足依赖条件的所有任务写入所述初始调度表中时,具体用于:
在关系型数据库中创建所述初始调度表;所述初始调度表包括:任务标识、任务名称、所述任务类型的业务优先级、任务的动态权重和所述任务所分配的时间片时长;
将满足所述依赖条件的任务对应的所述任务标识和所述任务名称,写入所述初始调度表中。
可选的,所述数据计算模块用于根据各个所述任务的历史运行情况,确定各个所述任务类型中各个所述任务的动态权重时,具体用于:
获取各个所述任务的历史运行情况中预设时间内的调度记录,提取各个历史任务所分配的时间片时长;
依据各个所述任务所分配的时间片时长,确定各个所述任务的动态权重。
本申请第三方面公开了一种电子设备,包括:
一个或多个处理器;
存储装置,其上存储有一个或多个程序;
当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器实现如本申请第一方面中任一项所述的批量任务调度方法。
本申请第四方面公开了一种存储介质,其上存储有计算机程序,其中,计算机程序被处理器执行时实现如本申请第一方面中任一项所述的批量任务调度方法。
从上述技术方案可知,本发明提供的一种批量任务调度方法,包括:建立初始调度表,将满足依赖条件的所有任务写入初始调度表中;设置各个任务类型的业务优先级;根据各个任务的历史运行情况,确定各个任务类型中各个任务的动态权重;其中,历史运行情况包括各个任务的历史时间片时长;依据业务优先级和动态权重,得到任务所分配的时间片时长;将业务优先级、动态权重和时间片时长记录到初始调度表,得到任务调度表;并依据任务调度表进行调度;也即,在时间片轮转调度策略的基础上,通过设置任务的业务优先级和计算任务的动态权重来给任务分配合理的系统资源,并且可以实现自定义的关键任务对资源的抢占,提高了系统的资源利用效率和灵活性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种批量任务调度方法的流程图;
图2是本发明实施例提供的一种批量任务调度系统的示意图;
图3是本发明实施例提供的一种电子设备的示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本申请中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
术语解释:
批量任务:是指应用程序对数据的批量处理,具有以下特点。
批量任务一般伴随着大量的数据处理;批量任务之间通常存在依赖关系,依赖链路中前置任务运行结束触发后置任务开始运行;批量任务要求在指定时间内完成。
在软件系统开发中常见的批量任务运行场景如下:文件接收解析入库、报表生成、数据的计算、定时的数据状态的更新等。
任务调度:任务调度系统负责数据领域所有离线任务的编排调度,驱动任务的执行,可以实现任务周期执行、定时触发,并管理复杂的任务依赖关系,是数据中台的重要组成部分。
本申请实施例提供了一种批量任务调度方法,用于解决现有技术中调度工具任务调度框架oozie、批量工作流任务调度器Azkaban,以及,可编程、调度和监控的工作流平台Airflow默认所有的任务的优先级是相同的,缺少对关键任务自定义优先级的支持,但是生产上存在一些需要普通任务让步,给关键任务插队的场景。
参见图1,批量任务调度方法,包括:
S101、建立初始调度表,将满足依赖条件的所有任务写入所述初始调度表中。
需要说明的是,各个任务存在依赖关系,比如说需要先执行任务A再执行任务B等,故建立初始调度表时,将满足依赖条件的所有任务写入该初始调度表,以使各个任务可以根据依赖关系进行调度。
需要说明的是,该依赖关系可以是执行时间、执行条件等,此处不再一一赘述,视实际情况而定即可,均在本申请的保护范围内。
该初始调度表中还可以是设置定时任务,该定时任务可以是作为触发调度表开始执行的任务,当然也可以是其他情况。
S102、设置各个任务类型的业务优先级。
需要说明的是,不同任务类型的业务优先级不同;一般情况下,优先级高的任务类型被分配的时间片时长较长,优先级低的任务类型被分配的时间片时长较短。
在批量任务执行的过程中,需要执行的任务较多,会有许多不同任务类型的任务均需要执行,故此处可以通过设置不同任务类型的优先级的方式区分重要任务和较重要任务等。
任务类型可以是数值计算类型、文件处理任务类型等,此处不做具体限定,均在本申请的保护范围内。
设置任务的业务优先级具体实施可以是:制定任务的类型和业务优先级对应表;例如,本系统运行的批量任务中数值计算任务的业务优先级最高,报表任务的业务优先级最低,则将数值计算任务的优先级设置为4,文件处理任务的优先级设置为2,报表任务的优先级设置为1,数值越大表示优先级越高,以上优先级的设定根据系统的业务特点和开发经验自行设置。
本申请对任务进行业务层分类,根据业务重要性设置任务的优先级,通过优先级可以直接影响任务被分配的时间片时长,不同业务重要性的任务分配时间片时长不一样,实现了业务层面资源分配的合理性。除此之外,优先级支持手动调整,调整后的优先级以热加载的形式实时生效,如此可以实现关键任务的插队优先运行。
S103、根据各个任务的历史运行情况,确定各个任务类型中各个任务的动态权重。
其中,历史运行情况包括各个任务的历史时间片时长。
需要说明的是,步骤S102中根据任务所属类型可以得到任务对应的业务优先级,但是属于同类型的任务之间也要进一步区分调度优先顺序。
因此本申请利用动态权重来达到同类型的任务之间区分调度优先顺序的目的。
也即,能够通过设置优先级来改变任务被分配的时间片时长,定义调整任务的调度优先顺序,实现关键任务插队抢占资源的效果。
而确定各个任务的动态权重可以是依据历史运行情况来确定。
然而,该历史运行情况包括各个任务的历史时间片时长,也就是说,可以依据历史时间片时长来确定各个任务的动态权重。
每运行一次任务调度表,均会产生历史时间片时长,故实现将实际情况反馈至本步骤,进行实时更新各个任务的动态权重。
S104、依据业务优先级和动态权重,得到任务所分配的时间片时长。
也就是说,各个任务分配的时间片时长与设置的业务优先级相关,以及,与计算得到的动态权重相关。
可选的,依据业务优先级和动态权重,得到任务所分配的时间片时长,包括:
针对任一任务,将任务对应的业务优先级和任务对应的动态权重的乘积,作为任务所分配的时间片时长。
具体的,还可以引入固定时长,进而时间片时长约等于业务优先级*动态权重*固定时长。如表1所示,任务一属于数值计算类,优先级为4,由步骤S101根据分配时长运算出的动态权重是2,固定时长是1min(分钟),得到该任务应该被分配的时间片时长是8min(分钟)。
表1:
S105、将业务优先级、动态权重和时间片时长记录到初始调度表,得到任务调度表;并依据任务调度表进行调度。
也就是说,任务调度表中记录有各个任务的业务优先级、动态权重和时间片时长。
在需要进行批量调度任务时,直接依据该任务调度表进行调度即可,具体的调度方式可以是按照任务调度表中的记录从第一行记录开始执行,在第一行记录对应的任务执行时间达到该时间片之后,执行下一行记录,直至完成任务调度表中的所有记录的调度。需要说明的是,可以是对该任务调度表执行再次轮询调度。具体的执行次数,此处不再一一赘述,视实际情况而定即可,均在本申请的保护范围内。
在本实施例中,建立初始调度表,将满足依赖条件的所有任务写入初始调度表中;设置各个任务类型的业务优先级;根据各个任务的历史运行情况,确定各个任务类型中各个任务的动态权重;其中,历史运行情况包括各个任务的历史时间片时长;依据业务优先级和动态权重,得到任务所分配的时间片时长;将业务优先级、动态权重和时间片时长记录到初始调度表,得到任务调度表;并依据任务调度表进行调度;也即,在时间片轮转调度策略的基础上,通过设置任务的业务优先级和计算任务的动态权重来给任务分配合理的系统资源,并且可以实现自定义的关键任务对资源的抢占,提高了系统的资源利用效率和灵活性。
可选的,上述步骤S101、建立初始调度表,将满足依赖条件的所有任务写入初始调度表中,包括:
在关系型数据库中创建初始调度表;初始调度表包括:任务标识、任务名称、任务类型的业务优先级、任务的动态权重和任务所分配的时间片时长;将满足依赖条件的任务对应的任务标识和任务名称,写入初始调度表中。
具体的,在关系型数据库中创建初始调度表,该表包含任务标识(ID,Identitydocument)、任务名称、任务的业务优先级、任务的动态权重和任务所分配的时间片时长。
其中,任务ID和任务名称标识了任务,任务业务优先级反映了任务的业务重要程度,凭借经验手动设置。任务的动态权重根据业务的运行情况计算得到,每新增一条运行记录,动态权重都可能发生调整。业务所分配的时间片时长决定了任务抢占资源的多少,时长是根据业务优先级和动态权重计算得到的,将满足上游依赖的任务的名称和ID写入初始调度表中。
需要说明的是,初始调度表和任务调度表均为调度表,只是不同时态下的调度表,初始调度表中还没填入各个任务的业务优先级、动态权重和时间片时长等信息,而任务调度表为已经填入各个任务的业务优先级、动态权重和时间片时长等信息。
可选的,上述步骤S103、根据各个任务的历史运行情况,确定各个任务类型中各个任务的动态权重,包括:
首先,获取各个任务的历史运行情况中预设时间内的调度记录,提取各个历史任务所分配的时间片时长;接着,依据各个任务所分配的时间片时长,确定各个任务的动态权重。
也就是说,计算任务的动态权重的具体实施可以是:根据任务的历史运行情况计算动态权重,例如查询系统近三个月的调度记录,这期间被分配的时间片时长越短的任务的权重越高。
该动态权重随着新的调度记录产生而动态变化,动态权重的计算原则是尽可能保证所有任务公平分配到合理资源。
本申请对属于同一业务类型的任务,通过计算动态权重来有区别地分配不同的时间片时长。动态权重根据历史运行情况计算,给予之前所分配时间片时长较短的任务以更高的权重来优先运行,实现了资源分配的公平性。
可选的,依据任务调度表进行调度,包括:
从第一行开始循环扫描任务调度表中记录,通过任务标识和任务行程取出当前记录对应的任务;其中,取出的记录满足依赖条件且处于等待状态。
通过相应调度框架下的任务启动命令,开始执行当前任务;在当前任务执行的同时开始计时,在当前任务的运行时间达到对应的时间片时长时,使用任务挂起/暂停命令中断当前任务的执行。
提取下一个任务返回执行通过相应调度框架下的任务启动命令,开始执行当前任务;在当前任务执行的同时开始计时,在当前任务的运行时间达到对应的时间片时长时,使用任务挂起/暂停命令中断当前任务的执行的步骤直至从上到下依次执行任务调度表中记录的所有任务,最后一个任务的时间片使用结束后扫描游标再次回到任务调度表中第一行记录,将之前挂起的任务恢复。
将任务设置好的优先级,计算的动态权重和时间片时长同步记录到表中开始调度的具体实施方式可以是:启动定时任务从第一行开始循环扫描调度表中记录,取出任务ID和任务名称定位到此时满足依赖处于等待状态下的任务,通过相应调度框架下的任务启动命令开始任务的执行,例如在oozie框架下则找到该任务对应的配置文件使用ooziejob-config命令执行。该oozie框架为大数据任务调度框架;ooziejob-config为工作配置命令。
在任务执行的同时开始计时,当任务运行时间达到对应的时间片时长时使用任务挂起/暂停命令中断任务的执行,此时定时任务从表中取出第二条记录,执行第二条记录对应的任务。
等第二个任务的时间片使用完后,挂起第二个任务,从表中取出第三个任务开始执行,从上到下依次执行表中记录的所有任务,最后一个任务的时间片使用结束后扫描游标再次回到表中第一行记录,将之前挂起的任务恢复。通过以上步骤的循环执行,调度表中的所有任务都将在使用一个或多个时间片后运行完成。
然后将这些任务下游满足依赖的相关任务作为新一轮的待调度任务加入表中,并计算时间片时长。本发明中每一轮任务执行的过程中不能被打断,只有在一轮执行完成之后,才能重新设置任务优先级,计算动态权重和时间片时长来决定任务的调度优先顺序。
在本申请中采用时间片轮转方式让各个任务都有获取资源来执行的机会,改善了由于大任务运行占用较长时间导致小任务长时间等待而无法获取资源的现象。
本申请另一实施例提供了一种批量任务调度系统。
参见图2,批量任务调度系统,包括:
数据准备模块101,用于建立初始调度表,将满足依赖条件的所有任务写入初始调度表中;设置各个任务类型的业务优先级。
数据计算模块102,用于根据各个任务的历史运行情况,确定各个任务类型中各个任务的动态权重;其中,历史运行情况包括各个任务的历史时间片时长;依据业务优先级和动态权重,得到任务所分配的时间片时长。
数据应用模块103,用于将业务优先级、动态权重和时间片时长记录到初始调度表,得到任务调度表;并依据任务调度表进行调度。
可选的,数据准备模块101用于建立初始调度表,将满足依赖条件的所有任务写入初始调度表中时,具体用于:
在关系型数据库中创建初始调度表;初始调度表包括:任务标识、任务名称、任务类型的业务优先级、任务的动态权重和任务所分配的时间片时长。
将满足依赖条件的任务对应的任务标识和任务名称,写入初始调度表中。
可选的,数据计算模块102用于根据各个任务的历史运行情况,确定各个任务类型中各个任务的动态权重时,具体用于:
获取各个任务的历史运行情况中预设时间内的调度记录,提取各个历史任务所分配的时间片时长。
依据各个任务所分配的时间片时长,确定各个任务的动态权重。
上述各个模块的具体工作过程和原理,详情参见上述实施例提供的批量任务调度方法,此处不再一一赘述,视实际情况而定即可,均在本申请的保护范围内。
在本实施例中,数据准备模块101于建立初始调度表,将满足依赖条件的所有任务写入初始调度表中;设置各个任务类型的业务优先级;数据计算模块102根据各个任务的历史运行情况,确定各个任务类型中各个任务的动态权重;其中,历史运行情况包括各个任务的历史时间片时长;依据业务优先级和动态权重,得到任务所分配的时间片时长;数据应用模块103将业务优先级、动态权重和时间片时长记录到初始调度表,得到任务调度表;并依据任务调度表进行调度;也即,在时间片轮转调度策略的基础上,通过设置任务的业务优先级和计算任务的动态权重来给任务分配合理的系统资源,并且可以实现自定义的关键任务对资源的抢占,提高了系统的资源利用效率和灵活性。
本申请另一实施例提供了一种存储介质,其上存储有计算机程序,其中,计算机程序被处理器执行时实现如上述实施例中任意一项的批量任务调度方法。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
本发明另一实施例提供了一种电子设备,如图3所示,包括:
一个或多个处理器201。
存储装置202,其上存储有一个或多个程序。
当一个或多个程序被一个或多个处理器201执行时,使得一个或多个处理器201实现如上述实施例中任意一项的批量任务调度方法。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。
虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
需要说明的是,本发明提供的批量任务调度方法和系统、电子设备、存储介质可用于金融领域或其他领域。上述仅为示例,并不对本发明提供的批量任务调度方法和系统、电子设备、存储介质的应用领域进行限定。
本说明书中的各个实施例中记载的特征可以相互替换或者组合,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种批量任务调度方法,其特征在于,包括:
建立初始调度表,将满足依赖条件的所有任务写入所述初始调度表中;
设置各个任务类型的业务优先级;
根据各个所述任务的历史运行情况,确定各个所述任务类型中各个所述任务的动态权重;其中,所述历史运行情况包括各个所述任务的历史时间片时长;
依据所述业务优先级和所述动态权重,得到任务所分配的时间片时长;
将所述业务优先级、所述动态权重和所述时间片时长记录到所述初始调度表,得到任务调度表;并依据所述任务调度表进行调度。
2.根据权利要求1所述的批量任务调度方法,其特征在于,所述建立初始调度表,将满足依赖条件的所有任务写入所述初始调度表中,包括:
在关系型数据库中创建所述初始调度表;所述初始调度表包括:任务标识、任务名称、所述任务类型的业务优先级、任务的动态权重和所述任务所分配的时间片时长;
将满足所述依赖条件的任务对应的所述任务标识和所述任务名称,写入所述初始调度表中。
3.根据权利要求1所述的批量任务调度方法,其特征在于,所述根据各个所述任务的历史运行情况,确定各个所述任务类型中各个所述任务的动态权,包括:
获取各个所述任务的历史运行情况中预设时间内的调度记录,提取各个历史任务所分配的时间片时长;
依据各个所述任务所分配的时间片时长,确定各个所述任务的动态权重。
4.根据权利要求1所述的批量任务调度方法,其特征在于,所述依据所述业务优先级和所述动态权重,得到任务所分配的时间片时长,包括:
针对任一所述任务,将所述任务对应的业务优先级和所述任务对应的动态权重的乘积,作为所述任务所分配的时间片时长。
5.根据权利要求1所述的批量任务调度方法,其特征在于,所述依据所述任务调度表进行调度,包括:
从第一行开始循环扫描所述任务调度表中记录,通过任务标识和任务行程取出当前记录对应的任务;其中,取出的记录满足所述依赖条件且处于等待状态;
通过相应调度框架下的任务启动命令,开始执行当前任务;在所述当前任务执行的同时开始计时,在所述当前任务的运行时间达到对应的时间片时长时,使用任务挂起/暂停命令中断当前任务的执行;
提取下一个任务返回执行通过相应调度框架下的任务启动命令,开始执行当前任务;在所述当前任务执行的同时开始计时,在所述当前任务的运行时间达到对应的时间片时长时,使用任务挂起/暂停命令中断当前任务的执行的步骤直至从上到下依次执行所述任务调度表中记录的所有任务,最后一个任务的时间片使用结束后扫描游标再次回到所述任务调度表中第一行记录,将之前挂起的任务恢复。
6.一种批量任务调度系统,其特征在于,包括:
数据准备模块,用于建立初始调度表,将满足依赖条件的所有任务写入所述初始调度表中;设置各个任务类型的业务优先级;
数据计算模块,用于根据各个所述任务的历史运行情况,确定各个所述任务类型中各个所述任务的动态权重;其中,所述历史运行情况包括各个所述任务的历史时间片时长;依据所述业务优先级和所述动态权重,得到任务所分配的时间片时长;
数据应用模块,用于将所述业务优先级、所述动态权重和所述时间片时长记录到所述初始调度表,得到任务调度表;并依据所述任务调度表进行调度。
7.根据权利要求6所述的批量任务调度系统,其特征在于,所述数据准备模块用于建立初始调度表,将满足依赖条件的所有任务写入所述初始调度表中时,具体用于:
在关系型数据库中创建所述初始调度表;所述初始调度表包括:任务标识、任务名称、所述任务类型的业务优先级、任务的动态权重和所述任务所分配的时间片时长;
将满足所述依赖条件的任务对应的所述任务标识和所述任务名称,写入所述初始调度表中。
8.根据权利要求6所述的批量任务调度系统,其特征在于,所述数据计算模块用于根据各个所述任务的历史运行情况,确定各个所述任务类型中各个所述任务的动态权重时,具体用于:
获取各个所述任务的历史运行情况中预设时间内的调度记录,提取各个历史任务所分配的时间片时长;
依据各个所述任务所分配的时间片时长,确定各个所述任务的动态权重。
9.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,其上存储有一个或多个程序;
当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器实现如权利要求1-5中任一项所述的批量任务调度方法。
10.一种存储介质,其特征在于,其上存储有计算机程序,其中,计算机程序被处理器执行时实现如权利要求1-5中任一项所述的批量任务调度方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311138677.7A CN117149388A (zh) | 2023-09-05 | 2023-09-05 | 一种批量任务调度方法和系统、电子设备、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311138677.7A CN117149388A (zh) | 2023-09-05 | 2023-09-05 | 一种批量任务调度方法和系统、电子设备、存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117149388A true CN117149388A (zh) | 2023-12-01 |
Family
ID=88898461
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311138677.7A Pending CN117149388A (zh) | 2023-09-05 | 2023-09-05 | 一种批量任务调度方法和系统、电子设备、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117149388A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117806807A (zh) * | 2024-02-29 | 2024-04-02 | 双一力(宁波)电池有限公司 | 任务调度方法、装置、电子设备和计算机可读存储介质 |
CN118052630A (zh) * | 2024-04-16 | 2024-05-17 | 深圳市银雁科技有限公司 | 任务优先级的优化方法、装置、电子设备及存储介质 |
-
2023
- 2023-09-05 CN CN202311138677.7A patent/CN117149388A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117806807A (zh) * | 2024-02-29 | 2024-04-02 | 双一力(宁波)电池有限公司 | 任务调度方法、装置、电子设备和计算机可读存储介质 |
CN117806807B (zh) * | 2024-02-29 | 2024-05-17 | 双一力(宁波)电池有限公司 | 任务调度方法、装置、电子设备和计算机可读存储介质 |
CN118052630A (zh) * | 2024-04-16 | 2024-05-17 | 深圳市银雁科技有限公司 | 任务优先级的优化方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10713603B2 (en) | System and method of work assignment management | |
CN106802826B (zh) | 一种基于线程池的业务处理方法及装置 | |
CN117149388A (zh) | 一种批量任务调度方法和系统、电子设备、存储介质 | |
US9477521B2 (en) | Method and system for scheduling repetitive tasks in O(1) | |
CN110442451B (zh) | 一种面向深度学习的多类型gpu集群资源管理调度方法和系统 | |
CN111506398B (zh) | 任务调度方法和装置、存储介质、电子装置 | |
CN105893263A (zh) | 一种测试任务调度方法 | |
CN109271435A (zh) | 一种支持断点续传的数据抽取方法及系统 | |
CN110012062B (zh) | 一种多机房任务调度方法、装置及存储介质 | |
US20190171479A1 (en) | Method and system for scheduling transactions in a data system | |
CN105677744A (zh) | 一种文件系统中提高服务质量的方法和装置 | |
CN115292016A (zh) | 基于人工智能的任务调度方法及相关设备 | |
CN108509280A (zh) | 一种基于推送模型的分布式计算集群本地性调度方法 | |
CN114265679A (zh) | 数据处理方法、装置和服务器 | |
CN112199180A (zh) | 多任务调度的方法及装置、电子设备及可读存储介质 | |
CN109271409A (zh) | 一种基于容器资源分配的数据库分片执行方法 | |
WO2019029721A1 (zh) | 任务的调度方法、装置、设备及存储介质 | |
CN109684089B (zh) | 一种基于预测模型的任务调度方法、系统及电子设备 | |
CN107885589B (zh) | 一种作业调度方法及装置 | |
CN109829005A (zh) | 一种大数据处理方法及装置 | |
CN110928649A (zh) | 资源调度的方法和装置 | |
CN113225269B (zh) | 基于容器的工作流调度方法、装置、系统及存储介质 | |
CN109491798A (zh) | 一种资源分配的方法及装置 | |
US20230205772A1 (en) | Optimal query scheduling for resource utilization optimization | |
Yu et al. | Scheduling test execution of WBEM applications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |