CN116089033A - 一种基于多级异构动态队列的任务调度方法 - Google Patents
一种基于多级异构动态队列的任务调度方法 Download PDFInfo
- Publication number
- CN116089033A CN116089033A CN202211696545.1A CN202211696545A CN116089033A CN 116089033 A CN116089033 A CN 116089033A CN 202211696545 A CN202211696545 A CN 202211696545A CN 116089033 A CN116089033 A CN 116089033A
- Authority
- CN
- China
- Prior art keywords
- task
- queue
- priority
- heterogeneous dynamic
- heterogeneous
- 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 29
- 238000010276 construction Methods 0.000 claims abstract description 87
- 238000012913 prioritisation Methods 0.000 claims description 2
- 238000012163 sequencing technique Methods 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
Images
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/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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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
技术领域
本发明属于软件开发技术领域,具体涉及一种基于多级异构动态队列的任务调度方法。
背景技术
在现有技术中,施工服务统一负责PaaS平台中多款产品的施工部署任务,通过单个先进先出(First Input First Output,FIFO)队列顺序执行。如图1所示,是现有技术中采用单个先进先出队列顺序执行任务的调度方案流程图,具体实施流程为,当接收到新的施工任务时,按照顺序进入先进先出队列,在工作线程空闲时,任务执行程序向先进先出阵列申请执行任务,则队列中的任务按照先进先出算法出队,实现任务调度;若任务执行失败,则系统记录任务失败次数+1,在任务失败次数未达到预设阈值的情况下,在当前线程马上重试,此时当前线程为被占用状态,不会申请执行新的任务。因此,如果出现一个长任务后接了多个短任务,或者一段时间内较多施工任务出现失败重试,都容易堵塞后续任务,最终导致多个任务超时,影响客户体验验。
发明内容
本发明实施例的目的是提供一种基于多级异构动态队列的任务调度方法,能够解决现有任务调度方案容易出现调度不合理,进而导致出现多项任务超时现象的技术问题。
为了解决上述技术问题,本发明是这样实现的:
本发明实施例提供了一种基于多级异构动态队列的任务调度方法,包括:
S101:基于第一约束条件,构造至少两级异构动态队列,不同队列之间的优先级存在差异;
S102:建立新施工任务与异构动态队列间的对应关系,所述新施工任务根据关系进入相应的所述异构动态队列;
S103:接收空闲工作线程任务申请,基于优先级确定目标队列中的目标任务,将目标任务调度至空闲工作线程。
在本发明实施例中,构造优先级不同的多级异构动态队列,不同队列之间的优先级存在差异;新施工任务根据其满足的约束条件进入不同的队列中,对施工任务做不同等级的优先级分类,在接收到空闲工作线程任务申请时,基于优先级确定目标队列中的目标任务,并将目标任务分配至空闲工作线程。本申请提供的任务调度方法,可对工作任务做优先级的分类,优先级较高的施工任务优先处理,实现了对施工任务的可控合理调度,有助于有效降低任务超时概率以及已超时任务的等待时间,提高用户体验。
附图说明
图1是现有技术中任务调度方案的原理图;
图2是本发明实施例提供的一种基于多级异构动态队列的任务调度方法流程示意图。
图3是本发明实施例提供的一种基于多级异构动态队列的任务调度方案示意图。
本发明目的的实现、功能特点及优点将结合实施例、参照附图做进一步说明。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面结合附图2和图3,通过具体的实施例及其应用场景对本发明实施例提供的一种基于多级异构动态队列的任务调度方法进行详细地说明。
参照图2和图3,示出了本发明实施例提供的一种基于多级异构动态队列的任务调度方法流程示意图以及任务调度方案示意图。
本发明实施例提供的一种基于多级异构动态队列的任务调度方法,包括:
S101:基于第一约束条件,构造至少两级异构动态队列,不同队列之间的优先级存在差异。
普通的队列是一种先进先出的数据结构,元素在队列尾追加,而从队列头删除;在优先级队列,元素被赋予优先级,当访问元素时,具有最高优先级的元素最先删除,优先队列具有最高级先出的行为特征。
在执行施工任务时,优先级高的队列中的任务优先处理,并且只会在当前队列所有施工任务执行完后才会进行下一优先级队列的任务执行。
在实际应用过程中,基于第一约束条件构造出多级异构动态阵列,不同队列所对应的第一约束条件存在差异,不同队列之间的优先级大小也有所不同。基于第一约束条件对队列做优先级分类,有助于实现对施工任务的优先级分类。
在一种可能的实施方式中,S101包括:
第一约束条件包括当前时间T与最早截止时间δ的关系,异构动态队列包括超时任务队列和未超时任务队列,超时任务队列的优先级大于未超时任务队列的优先级;
当所述施工任务的最早截止时间δ小于当前时间T时,满足超时任务队列的约束条件;
当施工任务的最早截止时间δ大于等于当前时间T时,满足所述未超时任务队列的约束条件。
通过多级异构动态队列,将超时和未超时的任务进行分类,超时任务的优先级高于未超时任务的优先级,可对超时任务进行优先处理,降低已超时任务的等待时间。
在一种可能的实施例中,S101还包括:
第一约束条件包括预设标记值;异构动态队列包括特殊队列;当施工任务具有预设标记值时,满足特殊队列的约束条件;特殊队列的优先级高于至少两级异构队列中其他异构动态队列的优先级。
本申请实施例中,可加入设置有预设标记值的特殊队列,该特殊队列的优先级高于其他队列的优先级,通过提供人工干预的手段,实现对施工任务的可控合理调度。
在一种可选的实施例中,多级异构队列包括特殊队列、超时任务队列以及未超时任务队列,该多级异构队列的优先级顺序为特殊队列的优先级高于超时任务队列的优先级,超时任务队列的优先级高于未超时任务队列的优先级。在执行施工任务时,特殊队列中的任务将优先处理,并且只会在特殊队列的所有任务执行完毕后,才会开始执行超时任务队列的任务。
在本申请实施例中,通过特殊队列、超时任务队列以及未超时任务队列三者彼此配合会使得整个系统的所有施工任务能够得到了更合理、更可控的调度。
其中,本领域技术人员可以根据实际情况调整第一约束条件的具体内容,根据第一约束条件完成对异构动态队列的构造以及优先级的设定,本发明实施例对此不做限定。
在一种可能的实施例中,S101包括:
至少两级异构动态队列为有序异构动态队列,有序异构动态队列中的施工任务基于第二约束条件构建优先排序规则。
通过第二约束条件构建队列中施工任务的优先排序规则,可基于排序顺序出队任务,将任务按排序依次执行,便于任务合理调度。
可选的,在一种实施例中,假设每个施工任务接收时间为α,任务执行耗时β,超时阈值γ(γ>β),由此可得到最早截止时间δ=f(α,β,γ)=α+γ-β,假设当前时间为T,任务总等待时长θ=f(α,β)=T–α+β。
超时任务队列的优先排序规则为按照任务总等待时长θ由大到小的顺序排列,即在超时任务队列中,总等待时长越大的施工任务排序越优,按照顺序优先出队;
未超时任务队列的优先排序规则为最早截止时间优先算法,最早截止时间优先算法是指根据任务的截止时间来确认任务的优先级的算法,任务截止时间越早,其优先级越高;即未超时任务队列按照最早截止时间δ由小到大的顺序排列,也即在未超时任务队列中,任务截止时间越早的施工任务排序越优,按照顺序优先出列。
通过最早截止时间优先算法降低施工任务的超时概率,通过优先处理最长等待时长的超时任务优化最坏情况下的客户体验。
可选的,在一种实施例中,特殊队列的优先排序规则为根据预设标记值由大到小的顺序排列。
特殊队列中的施工任务被赋予特殊标记Tag,该特殊标记可以是人工打标。标记值越大的施工任务排序越前,该施工任务可被优先执行。
通过特殊队列保留了人工干预通道,增加了任务调度的合理性。
其中,本领域技术人员可以根据实际情况调整第二约束条件的具体内容,根据第二约束条件完成对队列中施工任务优先排序规则的构建,本发明实施例对此不做限定。
S102:建立新施工任务与异构队列间的对应关系,新施工任务根据对应关系进入相应的异构动态队列。
在一种实施例中,S102具体包括:
S1021:接收新施工任务,新施工任务基于第一约束条件进入相应的有序异构动态队列。
在接收到新施工任务时,先判断其对应的第一约束条件,根据其满足的第一约束条件进入相应的异构动态队列中。
S1022:所述施工任务基于优先排序规则在所述有序异构动态队列中保持有序。
进入相应队列的新施工任务,根据该队列的优先排序规则确定其在该队列中应处的位置,保持该队列有序。
本申请实施例中,在接受到新施工任务后,首先对应到其应处的优先级队列,然后根据优先级排序规则确定队列中的优先执行施工任务,可实现对施工任务的合理安排,便于更科学合理调度施工任务。
S103:接收空闲工作线程任务申请,基于优先级确定目标队列中的目标任务,将目标任务调度至空闲工作线程。
在工作线程空闲时,任务执行程序将会主动向多级有序异构动态队列申请施工队伍,在接收到任务执行程序的申请请求时,基于优先级确定目标队列中的目标任务,然后将目标任务分配至空闲工作线程,开始目标任务的执行。
在一种可能的实施方式中,S103具体包括:
S1031:接收空闲工作线程任务申请,多级异构动态队列触发自检功能。
通过自检功能的触发,可对当前队列中任务实时监测,判断多级异构动态队列中的任务此刻是否处于正确的优先级队列中,以及在队列中按照是否遵照正确的排序规则排序,及时掌握施工任务与队列的匹配度,有助于实现施工任务的合理调度。
S1032:若异构动态队列中的施工任务满足当前所在队列对应的第一约束条件,则维持继续位于当前所在队列中的状态;若异构动态队列中的施工任务不再满足当前所在队列对应的第一约束条件,则将其视为新施工任务建立与异构动态队列间的对应关系。
由于当前时间的实时变化更新,为保证任务调度的合理性,队列中的任务需要基于当前时间的变化筛选出不再满足当前队列约束条件的施工任务;筛选出的任务将会重新按照新施工任务入队流程处理。关于新施工任务入队流程,前述实施例已有详细描述,此处将不再赘述。
通过本实施例的实施方式,能够实现对多级异构队列中的施工任务动态调整,确保任务调度保持合理。
在一种可能的实施方式中,S103还可以包括:
S1033:在有序异构动态队列中确定优先级最高的队列为目标队列;
S1034:基于目标队列中的优先排序规则,确定排序最优的施工任务为目标任务。
在所有施工队伍入队完成后,会在优先级最高的队列中选择排序最优的任务作为目标任务调度至工作线程执行,实现了整个系统任务调度的合理性。
可选的,在一种可能的实施方式中,该基于多级异构动态队列的任务调度方法还包括步骤S104:
S104:判断目标任务的失败次数是否达到预设阈值,若目标任务的失败次数未达到预设阈值,则将目标任务视为新施工任务重新建立与异构动态队列间的对应关系。
可选的,预设阈值可以为3次,也可以为5次,还可以为其他数值,此处不做具体限定。
工作线程中的任务可存在执行失败的情形,任务如果执行失败,则任务失败次数增加一次,此时若该任务的失败次数没有达到设定的阈值,则将其重新按照新任务入队流程处理。关于新施工任务入队流程,前述实施例已有详细描述,此处将不再赘述。
本实施例中,在任务失败时,若失败次数未达到预设阈值,会将其从当前的工作线程中移除,并把它视为新施工任务实行入队流程。通过该方式,可避免一段时间内较多施工任务出现失败重试,造成后续任务的堵塞,最终导致多个施工任务超时的现象发生。
本申请提供的任务调度方法,可对工作任务做优先级的分类,优先级较高的施工任务优先处理,实现了对施工任务的可控合理调度,有助于有效降低任务超时概率以及已超时任务的等待时间,提高用户体验。
以上仅为本发明的实施例而已,并不用于限制本发明。对于本领域技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。
Claims (10)
1.一种基于多级异构动态队列的任务调度方法,其特征在于,包括:
S101:基于第一约束条件,构造至少两级异构动态队列,不同队列之间的优先级存在差异;
S102:建立新施工任务与所述异构动态队列间的对应关系,所述新施工任务根据所述对应关系进入相应的所述异构动态队列;
S103:接收空闲工作线程任务申请,基于优先级确定目标异构动态队列中的目标任务,将所述目标任务调度至所述空闲工作线程。
2.根据权利要求1所述的任务调度方法,其特征在于,所述S101包括:
所述第一约束条件包括当前时间T与最早截止时间δ的关系,所述异构动态队列包括超时任务队列和未超时任务队列,所述超时任务队列的优先级大于所述未超时任务队列的优先级;
当所述新施工任务的所述最早截止时间δ小于所述当前时间T时,满足所述超时任务队列的约束条件;
当所述新施工任务的所述最早截止时间δ大于等于所述当前时间T时,满足所述未超时任务队列的约束条件。
3.根据权利要求1所述的任务调度方法,其特征在于,所述S101还包括:
所述第一约束条件包括预设标记值;
所述异构动态队列包括特殊队列;
当所述新施工任务具有预设标记值时,满足所述特殊队列的约束条件;
所述特殊队列的优先级高于至少两级所述异构队列中其他所述异构动态队列的优先级。
4.根据权利要求1-3任一项所述的任务调度方法,其特征在于,所述S101包括:
至少两级所述异构动态队列为有序异构动态队列,所述有序异构动态队列中的施工任务基于第二约束条件构建优先排序规则。
5.根据权利要求4所述的任务调度方法,其特征在于,所述S102具体包括:
S1021:接收所述新施工任务,所述新施工任务基于所述第一约束条件进入相应的所述有序异构动态队列;
S1022:所述施工任务基于所述优先排序规则在所述有序异构动态队列中保持有序。
6.根据权利要求5所述的任务调度方法,其特征在于,所述S103具体包括:
S1031:接收所述空闲工作线程任务申请,多级所述异构动态队列触发自检功能;
S1032:若所述异构动态队列中的所述施工任务满足当前所在所述队列对应的所述第一约束条件,则维持继续位于所述当前所在队列中的状态;若所述异构动态队列中的所述施工任务不再满足所述当前所在队列对应的所述第一约束条件,则将其视为所述新施工任务并建立与所述异构动态队列间的对应关系。
7.根据权利要求4所述的任务调度方法,其特征在于,所述S103具体包括:
S1033:在所述有序异构动态队列中确定优先级最高的队列为所述目标队列;
S1034:基于所述目标队列中的所述优先排序规则,确定排序最优的所述施工任务为所述目标任务。
8.根据权利要求1所述的任务调度方法,其特征在于,还包括:
S104:判断所述目标任务的失败次数是否达到预设阈值,若所述目标任务的失败次数未达到所述预设阈值,则将所述目标任务视为所述新施工任务重新建立与所述异构动态队列间的对应关系。
9.根据权利要求4所述的任务调度方法,其特征在于,
所述超时任务队列的优先排序规则为按照任务总等待时长θ由大到小的顺序排列,所述总等待时长θ=当前时间T-最早截止时间δ+任务执行耗时β;
所述未超时任务队列的优先排序规则为最早截止时间优先算法,即按照最早截止时间δ由小到大的顺序排列。
10.根据权利要求4所述的任务调度方法,其特征在于,
所述特殊队列的优先排序规则为根据预设标记值由大到小的顺序排列。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211696545.1A CN116089033A (zh) | 2022-12-28 | 2022-12-28 | 一种基于多级异构动态队列的任务调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211696545.1A CN116089033A (zh) | 2022-12-28 | 2022-12-28 | 一种基于多级异构动态队列的任务调度方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116089033A true CN116089033A (zh) | 2023-05-09 |
Family
ID=86209644
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211696545.1A Pending CN116089033A (zh) | 2022-12-28 | 2022-12-28 | 一种基于多级异构动态队列的任务调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116089033A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117032993A (zh) * | 2023-10-08 | 2023-11-10 | 麒麟软件有限公司 | 任务调度方法 |
-
2022
- 2022-12-28 CN CN202211696545.1A patent/CN116089033A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117032993A (zh) * | 2023-10-08 | 2023-11-10 | 麒麟软件有限公司 | 任务调度方法 |
CN117032993B (zh) * | 2023-10-08 | 2024-04-05 | 麒麟软件有限公司 | 任务调度方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108920261B (zh) | 一种适于大规模并行数据处理任务的两级自适应调度方法 | |
CN106802826B (zh) | 一种基于线程池的业务处理方法及装置 | |
CN108762896B (zh) | 一种基于Hadoop集群任务调度方法及计算机设备 | |
US7559062B2 (en) | Intelligent scheduler for multi-level exhaustive scheduling | |
US7076781B2 (en) | Resource reservation for large-scale job scheduling | |
US7246353B2 (en) | Method and system for managing the execution of threads and the processing of data | |
CN110489217A (zh) | 一种任务调度方法及系统 | |
CN111897637B (zh) | 作业调度方法、装置、主机及存储介质 | |
CN111026519B (zh) | 基于分布式的任务优先级调度方法和系统及存储介质 | |
US10514949B1 (en) | Efficient data processing in a serverless environment | |
CN112395067A (zh) | 任务调度方法、系统、设备及介质 | |
CN116089033A (zh) | 一种基于多级异构动态队列的任务调度方法 | |
CN111651864A (zh) | 一种事件集中发射式多异构时间队列优化仿真执行方法及系统 | |
CN111240864A (zh) | 异步任务处理方法、装置、设备及计算机可读存储介质 | |
CN115222121A (zh) | 一种面向工业数据的任务调度优化方法 | |
CN115309519A (zh) | 基于时间触发机制的确定性任务调度编排方法、系统和存储介质 | |
CN114691340A (zh) | 基于多级反馈队列的异构多机器人任务调度方法及系统 | |
CN113391911B (zh) | 一种大数据资源动态调度方法、装置和设备 | |
CN112948096A (zh) | 一种批量调度方法、装置和设备 | |
US20060123421A1 (en) | Streamlining cpu utilization by delaying transactions | |
US20030163600A1 (en) | Method and system where one thread can handle several different services concurrently | |
CN116760784A (zh) | 一种基于优先级及运行时间的opc ua关键消息调度方法 | |
CN110503318A (zh) | 综合模块化航空电子处理系统资源配置与仿真评估平台 | |
CN115766612A (zh) | 一种基于权重转换概率的调度方法及相应的装置 | |
CN114035928A (zh) | 分布式任务分配处理方法 |
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 |