CN113342497A - 任务调度方法、装置、终端设备及计算机存储介质 - Google Patents

任务调度方法、装置、终端设备及计算机存储介质 Download PDF

Info

Publication number
CN113342497A
CN113342497A CN202110718200.0A CN202110718200A CN113342497A CN 113342497 A CN113342497 A CN 113342497A CN 202110718200 A CN202110718200 A CN 202110718200A CN 113342497 A CN113342497 A CN 113342497A
Authority
CN
China
Prior art keywords
task
scheduling
scheduled
preset
time length
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
Application number
CN202110718200.0A
Other languages
English (en)
Inventor
耿学文
陈朝亮
卢道和
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
WeBank Co Ltd
Original Assignee
WeBank Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by WeBank Co Ltd filed Critical WeBank Co Ltd
Priority to CN202110718200.0A priority Critical patent/CN113342497A/zh
Publication of CN113342497A publication Critical patent/CN113342497A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/484Precedence

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

任务调度方法、装置、终端设备及计算机存储介质
技术领域
本发明涉及金融科技(Fintech)技术领域,尤其涉及一种任务调度方法、装置、终端设备及计算机存储介质。
背景技术
随着计算机技术的发展,越来越多的技术应用在金融领域,传统金融业正在逐步向金融科技转变,但由于金融行业的安全性、实时性以及稳定性等要求,也对技术提出了更高的要求。
任务调度对于多数业务系统而言是必不可少的一个组件,目前,任务调度的相关算法主要包括以下三种:(1)先进先出法,即先进入任务列表的任务先被调度执行;(2)最短任务优先法,即,进入任务队列的所有任务中执行时间最短的任务先被调度执行;(3)最高相应比优先法,即进入任务队列的所有任务中运行时间与等待时间的比值最大的任务先被调度执行。
然而,由于上述三种算法中,第一种算法倾向于先进入任务列表的任务,第二种算法和第三种算法倾向于运行时间短的任务,因此,现有的任务调度的相关算法执行模式单一不具有灵活性,导致对任务的调度存在不公平的现象,从而造成不同任务的资源利用率不均。
发明内容
本发明的主要目的在于提供一种任务调度方法、装置、终端设备及计算机存储介质,旨在解决现有的任务调度的相关算法不能实现灵活调度任务,对每个待调度任务的公平性差,导致不同任务的资源利用率不均的技术问题。
为实现上述目的,本发明提供一种任务调度方法,所述任务调度方法包括:
接收任务调度指令以确定所述任务调度指令对应的待调度任务;
确定所述待调度任务的执行时长和等待时长,并将所述待调度任务放入预设任务列表;
根据所述执行时长和所述等待时长计算预设调度算法中的初始调度参数;
对所述初始调度参数进行调整得到调整后的调度参数,并通过所述预设调度算法基于所述调整后的调度参数对所述预设任务列表中的任务进行调度。
可选地,在所述接收任务调度指令以确定所述任务调度指令对应的待调度任务的步骤之后,还包括:
获取预存的历史任务时长和处理所述待调度任务的目标线程的状态信息;
所述待调度任务的数量大于一,所述确定所述待调度任务的执行时长和等待时长的步骤,包括:
根据所述历史任务时长估算所述待调度任务中各任务各自的执行时长;
根据所述状态信息估算所述待调度任务中各任务各自的等待时长。
可选地,所述根据所述执行时长和所述等待时长计算预设调度算法中的初始调度参数的步骤,包括:
提取所述执行时长中的第一最大值和第一最小值,并定义所述第一最大值为第一时长和定义所述第一最小值为第二时长;
提取所述等待时长中的第二最大值和第二最小值,并定义所述第二最大值为第三时长和定义所述第二最小值为第四时长;
根据所述第一时长、所述第二时长、所述第三时长和所述第四时长计算预设调度算法中的初始调度参数。
可选地,所述对所述初始调度参数进行调整得到调整后的调度参数的步骤,包括:
接收参数调整指令,其中,所述参数调整指令基于所述预设任务列表的堵塞状态触发,或者,基于所述等待时长的平均值的大小触发;
根据所述参数调整指令对所述初始调度参数进行调整得到调整后的调度参数。
可选地,所述初始调度参数包括:所述等待时长的第一权重控制参数,所述根据所述参数调整指令对所述初始调度参数进行调整得到调整后的调度参数的步骤,包括:
按照预设递减规则,在第一区间内调整所述第一权重控制参数,其中,所述第一区间由所述第三时长和所述第四时长确定。
可选地,所述初始调度参数还包括:所述执行时长的第二权重控制参数,所述根据所述参数调整指令对所述初始调度参数进行调整得到调整后的调度参数的步骤,还包括:
按照预设递减规则,在第二区间内调整所述第二权重控制参数,其中,所述第二区间由所述第一时长、第二时长和所述第四时长确定;
按照预设递增规则,在第三区间内调整所述第二权重控制参数,其中,所述第三区间由所述第一时长、第二时长和所述第四时长确定,且所述第三区间的极小值大于或者等于所述第二区间的极大值。
可选地,所述通过所述预设调度算法基于所述调整后的调度参数对所述预设任务列表中的任务进行调度的步骤,包括:
将所述调整后的调度参数加入所述预设调度算法中以计算得到所述待调度任务对应的优先权重值;
根据所述优先权重值从所述预设任务列表中提取所述待调度任务以完成调度。
此外,为实现上述目的,本发明还提供一种任务调度装置,所述任务调度装置包括:
待调度任务确定模块,用于接收任务调度指令以确定所述任务调度指令对应的待调度任务;
时长确定模块,用于确定所述待调度任务的执行时长和等待时长,并将所述待调度任务放入预设任务列表;
初始调度参数计算模块,用于根据所述执行时长和所述等待时长计算预设调度算法中的初始调度参数;
参数调整模块,用于对所述初始调度参数进行调整得到调整后的调度参数,并通过所述预设调度算法基于所述调整后的调度参数对所述预设任务列表中的任务进行调度。
其中,本发明任务调度装置的各功能模块在运行时实现如上所述的任务调度方法的步骤。
此外,为实现上述目的,本发明还提供一种终端设备,所述终端设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的任务调度程序,所述任务调度程序被所述处理器执行时实现如上所述的任务调度方法的步骤。
此外,为实现上述目的,本发明还提供一种计算机存储介质,所述计算机存储介质上存储有任务调度程序,所述任务调度程序被处理器执行时实现如上所述的任务调度方法的步骤。
此外,为实现上述目的,本发明还提供计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现如上所述的任务调度方法的步骤。
本发明提供的一种任务调度方法、装置、终端设备、计算机存储介质及计算机程序产品,接收任务调度指令,获取所述任务调度指令对应的所有任务,估算所述所有任务中每个任务的执行时长和等待时长,将所述所有任务放入预设任务列表;根据所述每个任务的执行时长和等待时长,计算预设调度算法中的初始调度参数;接收参数调整指令,根据所述参数调整指令对所述初始调度参数进行调整,基于调整后的预设调度算法对所述预设任务列表中的任务进行调度。
本发明相比于现有的任务调度算法而言,通过估算得到预设任务列表中每个任务的执行时长和等待时长,确定本发明提出的调度算法中的初始调度参数,并在接收到触发生成的参数调整指令时,根据参数调整指令对本发明提出的调度算法中的初始调度参数进行调整,并基于调整后的调度算法对预设任务列表中的任务进行调度,通过触发生成的参数调整指令,灵活调整本发明提出的调度算法中的调度参数,使基于本发明提出的调整调度参数后的调度算法进行的任务调度更加灵活,且基于可变参数的调度算法进行的任务调度,对预设任务列表中的每个任务更加公平,避免不同任务的资源利用率不均的问题。
此外,在本发明任务调度方法中,可根据不同的业务需求和应用场景生成不同的参数调整指令,进而对本发明提出的调度算法中的调度参数进行灵活调整,使基于本发明提出的调整调度参数后的调度算法进行的任务调度更加符合业务需求,更加适应业务需求多变的现实场景。
附图说明
图1为本发明实施例方案涉及的终端设备硬件运行环境的设备结构示意图;
图2为本发明实施例方案涉及的任务调度示意图;
图3为本发明任务调度方法第一实施例的流程示意图;
图4为本发明任务调度方法一实施例所涉及的参数调整过程示意图;
图5为本发明任务调度方法一实施例所涉及的预设调度算法执行过程示意图;
图6为本发明任务调度装置一实施例的功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参照图1,图1为本发明实施例方案涉及的终端设备硬件运行环境的设备结构示意图。
本发明实施例终端设备可以是能够运行需要批量任务处理的业务系统的设备,或者,本发明实施例终端设备还可以是具有程序编译功能的设备,该终端设备可以是PC(Personal Computer,个人计算机)、平板电脑、便携计算机等等。
如图1所示,该终端设备可以包括:处理器1001,例如CPU,通信总线1002,用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如Wi-Fi接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的终端设备结构并不构成对终端设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及任务调度程序。
在图1所示的终端中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端,与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的任务调度程序,并执行以下任务调度方法的各实施例。
基于上述硬件结构,提出本发明任务调度方法的各实施例。
需要说明的是,任务调度对于多数业务系统而言是必不可少的一个组件,特别是需要在后台批量任务处理的业务系统,如图2所示,任务调度一般会包含以下三部分:Event(事件)触发器、调度器和任务本身,其中,Event触发器主要负责任务的产生,调度器主要负责将任务列表中的任务调度到处理线程以执行任务。
现有的Event触发器主要有以下两种类型:Time-Based(基于时间)触发器和Event-Based(基于事件)触发器,基于时间的任务调度是指,设置特定的时间调度规则,依据时间调度规则在特定的时间点触发任务调度的执行,例如:每天夜间22:00执行数据聚合(相关任务)的调度,基于时间的任务调度缺点是规则固定,不具有灵活性。
基于事件的任务调度则是指,依据特定的事件场景触发任务调度的执行,例如:用户账户注销后,则启动数据清理,这里“账户注销”是事件,“数据清理”是账户注销事件触发的任务,这种情况下,任务调度时间是不确定的,与事件场景有关,无法预估这种事件场景触发的任务数量及集中程度,需要任务列表来缓存任务,并通过调度算法来进行任务的执行。
调度器作为任务调度的核心,调度器涉及的调度算法的优劣决定了任务调度的质量,决定了任务调度的稳定性和高效性,由背景技术可知,现有的任务调度算法执行模式单一不具有灵活性,导致对任务的调度存在不公平的现象。
针对上述现象,本发明提供一种任务调度方法。请参照图3,图3为本发明任务调度方法第一实施例的流程示意图,在本实施例中,本发明任务调度方法应用于如上述的终端设备,本发明任务调度方法包括:
步骤S10,接收任务调度指令以确定所述任务调度指令对应的待调度任务;
终端设备通过监控系统事件来接收任务调度指令,并在接收到该任务调度指令之后,确定该务调度指令所指向的当前需要进行调度的待调度任务。
需要说明的是,在本实施例中,待调度任务由Event(事件)触发器触发生成,Event-Based(基于事件)触发器触发生成的待调度任务与事件场景有关,无法预估事件场景触发的待调度任务数量以及集中程度,当待调度任务较多时,需要先对待调度任务进行缓存,然后通过调度算法来进行任务的调度与执行,当事件场景触发的待调度任务数量较多时,Event-Based触发器还会触发任务调度指令的生成。
具体地,例如,目标事件“账户注销”产生后,自动触发任务——“清理数据”,其中,“清理数据”包含一个或多个待调度任务,考虑到待调度任务只有一个时,调度是没有意义的,所以,本实施例中目标事件触发的待调度任务,即任务调度指令对应的待调度任务至少存在两个,如图2所示,Event触发器主要负责待调度任务的产生,因此,本实施例中的任务调度指令并不限于目标事件产生才触发,当Event触发器在短时间内产生大量的待调度任务时,都会触发任务调度指令。
步骤S20,确定所述待调度任务的执行时长和等待时长,并将所述待调度任务放入预设任务列表;
终端设备在接收到事件触发器触发生成的任务调度指令,并确定该任务调度指令对应的所有待调度任务后,进一步估算确定该所有待调度任务各自的执行时长和等待时长,从而基于该执行时长和等待时长确定该所有待调度任务的被调度顺序,进而按照该调度顺序将该所有待调度任务放入预设任务列表以供后续根据确定的该被调度顺序对所有待调度任务进行调度。
具体地,例如,如图2所示,本实施例中,调度器通过调度算法将待调度任务从任务列表中调度到处理线程,由处理线程对待调度任务进行执行,因此,待调度任务的执行时长(处理完待调度任务所需的时长)和等待时长(待调度任务从进入任务列表到被调度到处理线程之间的时长)与处理线程本身的处理能力有关,如图2中的示例所示,Event触发器产生了9个待调度任务,这9个待调度任务在进入任务列表(即是本实施例中的预设任务列表)之前就被估算了执行时长和等待时长,或者,这9个待调度任务在进入任务列表时被估算了执行时长和等待时长,具体顺序本实施例不做限定。
需要说明的是,在本实施例中,估算待调度任务的执行时长和等待时长的方法可以是,将待调度任务本身的处理难度与处理线程处理单个任务的能力进行匹配,进而估算出待调度任务的执行时长;将待调度任务本身的参数(例如进入预设任务列表的顺序)与处理线程同时处理多个任务的能力进行匹配,进而估算出待调度任务的等待时长,可知地,当待调度任务的执行时长被估算确定后,在被调度前便不会发生变化,当待调度任务的等待时长被估算确定后,在被调度前除了时间推移产生的变化外不会再发生其他变化。
步骤S30,根据所述执行时长和所述等待时长计算预设调度算法中的初始调度参数。
需要说明的是,现有的任务调度算法主要包括3种(背景技术部分已提及),关于背景技术中的最高相应比优先法,其算法本身的计算公式为:
Figure BDA0003135689110000081
(Jwait为等待时长,Jrun为执行时长),F值大的待调度任务优先被调度,根据这个算法,执行时长和等待时长均为10秒的待调度任务,相当于执行时长和等待时长均为1秒的待调度任务,这个算法本身仍然是偏向于执行时长较短的待调度任务。
而针对上述现有算法的弊端,本发明提出了一种与现有算法不同的新调度算法——预设调度算法,该预设调度算法的计算公式为:f=a×Jwait+(b-c×Jrun),f值大的待调度任务优先被调度器调度。该预设调度算法中,a,b和c为本实施例中的初始调度参数,a为等待时长的第一权重控制参数,a的取值范围可以为[0,1]之间,c为执行时长的第二权重控制参数,b为执行时长的第三权重控制参数,c的取值范围可以为
Figure BDA0003135689110000082
(待调度任务中最长的执行时长)之间。
终端设备在估算出任务列表中每个待调度任务的执行时长和等待时长后,便可以计算预设调度算法中的各项初始调度参数。
具体地,例如,计算预设调度算法中的初始调度参数时,首先取出所有待调度任务中执行时长的最大值和最小值,等待时长的最大值和最小值,在表1中,所有待调度任务中执行时长的最大值为
Figure BDA0003135689110000091
执行时长的最小值为
Figure BDA0003135689110000092
为,等待时长的最大值为
Figure BDA0003135689110000093
为,等待时长的最小值为
Figure BDA0003135689110000094
设置
Figure BDA0003135689110000095
由于a的最大值为1,则可设等式一为:
Figure BDA0003135689110000096
将a和b代入上述等式一可得
Figure BDA0003135689110000097
考虑到均衡性,则可设等式二为:
Figure BDA0003135689110000098
Figure BDA0003135689110000099
综上,a,b,c的值分别为:
Figure BDA00031356891100000910
Figure BDA00031356891100000911
步骤S40,对所述初始调度参数进行调整得到调整后的调度参数,并通过所述预设调度算法基于所述调整后的调度参数对所述预设任务列表中的任务进行调度。
终端设备在计算得到预设调度算法中的各项初始调度参数之后,进一步基于预设任务列表中的任务调度状态来针对该初始调度参数进行调整,从而得到调整后初始调度参数,最后,利用该预设调度算法和该调整后的调度参数,确定当前需要在预设任务列表中调度的任务,并针对该任务进行调度执行。
需要说明的是,在本实施例中,由于当待调度任务的执行时长被估算确定后,在被调度前便不会发生变化,当待调度任务的等待时长被估算确定后,在被调度前除了时间推移产生的变化外也不会再发生其他变化,因此,在当待调度任务进入任务列表中后,本发明提出的新调度算法的初始调度参数就能确定了,但是,待调度任务在被调度的过程中,肯定会出现各种特殊情况,例如,预设任务列表出现阻塞和需要计算任务调度执行的吞吐率等,待调度任务在被调度的过程中,当出现特殊情况时,本发明提出的新调度算法的初始调度参数将会被调整,使本发明提出的新调度算法调整对于执行时长或者等待时长的倾向性,从而更加适应各种特殊情况的发生,也使本发明提出的预设调度算法更加灵活,更适应业务需求多变的现实场景。
具体地,当上述特殊情况为预设任务列表阻塞严重,需提供任务调度执行的吞吐率时,可以将上述等待时长的第一权重控制参数a在
Figure BDA0003135689110000101
之间逐渐递减,反之则a在
Figure BDA0003135689110000102
之间递增;当上述特殊情况为待调度任务的平均等待时长超过一个临界值时,可以将上述执行时长的第二权重控制参数c在
Figure BDA0003135689110000103
之间逐渐递减;反之c在
Figure BDA0003135689110000104
Figure BDA0003135689110000105
递增。上述特殊情况仅做举例说明,并不限制其他特殊情况及其对应的调整方法,本实施例旨在保护基于特殊情况对等待时长的第一权重控制参数,和/或,执行时长的第二权重控制参数和/或,执行时长的第三权重控制参数在对应区间内进行递增或者递减的处理方法,且对于递增或者递减的形式也不做限定。
在实施例中,本发明提供的一种任务调度方法,相比于现有的任务调度算法而言,通过估算得到预设任务列表中每个任务的执行时长和等待时长,确定本发明提出的调度算法中的初始调度参数,并在接收到触发生成的参数调整指令时,根据参数调整指令对本发明提出的调度算法中的初始调度参数进行调整,并基于调整后的调度算法对预设任务列表中的任务进行调度,通过触发生成的参数调整指令,灵活调整本发明提出的调度算法中的调度参数,使基于本发明提出的调整调度参数后的调度算法进行的任务调度更加灵活,且基于可变参数的调度算法进行的任务调度,对预设任务列表中的每个任务更加公平,避免不同任务的资源利用率不均的问题。
在本发明任务调度方法中,可根据不同的业务需求和应用场景生成不同的参数调整指令,进而对本发明提出的调度算法中的调度参数进行灵活调整,使基于本发明提出的调整调度参数后的调度算法进行的任务调度更加符合业务需求,更加适应业务需求多变的现实场景。
进一步地,基于上述第一实施例,提出本发明任务调度方法的第二实施例,本实施例与上述第一实施例之间的主要区别在于,在本实施例中,在上述步骤S10之后,本发明任务调度方法,还可以包括:
步骤S50,获取预存的历史任务时长和处理所述待调度任务的目标线程的状态信息。
需要说明的是,在本实施例中,历史任务时长是指,处理过的历史调度任务的执行时长,目标线程的状态信息是指,目标线程处理(单个或多个)待调度任务的能力,该能力的强弱通过时间长短进行表示。
终端设备在待调度任务的执行时长和等待时长这两大属性来估算预设调度算法中的初始调度参数之前,先获取处理过的历史调度任务的执行时长,以及单个或多个目标线程处理待调度任务的能力,以供后续估算该初始调度参数。
进一步地,在本实施例中,待调度任务的数量大于一,上述步骤S20细化的步骤,包括:
步骤S21,根据所述历史任务时长估算所述待调度任务中各任务各自的执行时长。
终端设备通过获取大量处理过的历史调度任务的执行时长,从这些大量历史调度任务中寻找与预设任务列表中待调度任务匹配的历史处理过的任务,进而根据与该待调度任务匹配的历史调度任务的执行时长,估算该待调度任务的执行时长。
具体地,例如,当待调度任务与历史调度任务的任务类型都是数据清理,且待调度任务与历史调度任务清理的数据量相同(或相似)时,判定待调度任务与历史调度任务匹配,将与待调度任务匹配的历史调度任务的执行时长直接作为待调度任务的执行时长,当与待调度任务匹配的历史调度任务大于1时,可以求所有与待调度任务匹配的历史调度任务的执行时长的平均值,并将求得的平均值作为待调度任务的执行时长。
步骤S22,根据所述状态信息估算所述待调度任务中各任务各自的等待时长。
终端设备在通过历史任务时长估算待调度任务中各任务各自的执行时长时,同步或者异步的根据处理待调度任务的目标线程的状态信息估算待调度任务中各任务各自的等待时长,即,将获取到的以时间单位表示的单个或多个目标线程处理待调度任务的能力作为该目标线程的状态信息,从而根据该状态信息估算待调度任务中各任务各自的瞪大时长。
需要说明的是,在本实施例中,待调度任务的等待时长的估算方法可以与待调度任务的执行时长的估算方法一致,具体地,例如,当待调度任务与历史调度任务的任务类型都是数据清理,且待调度任务与历史调度任务清理的数据量相同(或相似)时,判定待调度任务与历史调度任务匹配,将与待调度任务匹配的历史调度任务的等待时长直接作为待调度任务的等待时长,当与待调度任务匹配的历史调度任务大于1时,可以求所有与待调度任务匹配的历史调度任务的等待时长的平均值,并将求得的平均值作为待调度任务的等待时长。
进一步地,在一种可行的实施例中,上述步骤S30,根据所述执行时长和所述等待时长计算预设调度算法中的初始调度参数,可以包括:
步骤S31,提取所述执行时长中的第一最大值和第一最小值,并定义所述第一最大值为第一时长和定义所述第一最小值为第二时长;
当估算得到预设任务列表中所有的待调度任务的执行时长后,从预设任务列表中所有的待调度任务的执行时长中提取执行时长中的最大值(即本实施例中的第一最大值)和最小值(即本实施例中的第一最小值),并定义第一最大值为第一时长,定义第一最小值为第二时长,具体地,提取第一最大值和第一最小值的目的是,本发明提出的预设调度算法中的初始调度参数的计算需要使用到第一最大值和第一最小值,而定义第一最大值和第一最小值的目的是便于计算过程的描述。
具体地,例如,当所有的待调度任务的执行时长中的最大值(或最小值)存在多个时,对本实施例提取第一最大值(或第一最小值)没有影响,因为,本实施例提取的是执行时长中的最大或最小的数值。
步骤S32,提取所述等待时长中的第二最大值和第二最小值,并定义所述第二最大值为第三时长和定义所述第二最小值为第四时长;
当估算得到预设任务列表中所有的待调度任务的等待时长后,从预设任务列表中所有的待调度任务的等待时长中提取等待时长中的最大值(即本实施例中的第二最大值)和最小值(即本实施例中的第二最小值),并定义第二最大值为第三时长,定义第二最小值为第四时长。
具体地,例如,提取第二最大值和第二最小值的目的是,本发明提出的预设调度算法中的初始调度参数的计算还需要使用到第二最大值和第二最小值,而定义第二最大值和第二最小值的目的也是便于计算过程的描述。
步骤S33,根据所述第一时长、所述第二时长、所述第三时长和所述第四时长计算预设调度算法中的初始调度参数。
需要说明的是,本实施例中的预设调度算法中的调度参数的初始值(即本实施例中的初始调度参数)是根据第一时长、第二时长、第三时长和第四时长计算得到的,初始调度参数的具体计算方法在上述实施例中已经详细说明,本实施例不再叙述。
进一步地,在一种可行的实施例中,上述步骤S40,对所述初始调度参数进行调整得到调整后的调度参数,还可以包括:
步骤S41,接收参数调整指令,其中,所述参数调整指令基于所述预设任务列表的堵塞状态触发,或者,基于所述等待时长的平均值的大小触发;
终端设备接收预设任务列表在处于堵塞状态,需要提供任务调度执行的吞吐率时,触发生成的参数调整指令,或者,终端设备接收预设任务列表中待调度任务等待时长的平均值达到临界值时触发的参数调整指令。
步骤S42,根据所述参数调整指令对所述初始调度参数进行调整得到调整后的调度参数。
终端设备在接收到参数调整指令之后,即根据该触发发参数调整的方式,针对对应的初始调度参数进行调整得到调整后的调度参数。
具体地,例如,预设任务列表中的待调度任务被调度的过程如图4所示,首先按照上述实施例的内容计算得到初始调度参数,然后读取预设任务列表,通过读取预设任务列表,确定预设任务列表是否处于堵塞状态,若且该参数调整指令是针对等待时间的第一权重控制参数的,即该参数调整指令是对等待时长的第一权重控制参数的调整指令,目的是调整等待时长对任务的权重值的影响程度,可以是调大等待时长对任务的权重值的影响程度,也可以是调小等待时长对任务的权重值的影响程度。
此外,通过读取预设任务列表,还可以确定预设任务列表中所有待调度任务的等待时长的平均值大小,当预设任务列表中所有待调度任务的等待时长的平均值大小超过一个临界值时,触发生成参数调整指令,且该参数调整指令是针对执行时长的第二权重控制参数和第三权重控制参数的调整指令,目的是调整执行时长对任务的权重值的影响程度,可以是调大执行时长对任务的权重值的影响程度,也可以是调小执行时长对任务的权重值的影响程度。然后,根据上述;两种不同的参数调整指令,对初始调度参数进行调整,最后得到调整后的调度参数。
进一步地,在一种可行的实施例中,初始调度参数包括所述等待时长的第一权重控制参数,上述步骤S42,根据所述参数调整指令对所述初始调度参数进行调整得到调整后的调度参数,还可以包括:
步骤S421,按照预设递减规则,在第一区间内调整所述第一权重控制参数,其中,所述第一区间由所述第三时长和所述第四时长确定。
需要说明的是,当预设任务列表处于堵塞状态,需要提供任务调度执行的吞吐率时,触发生成的参数调整指令是对等待时长的第一权重控制参数(即上述实施例中的初始调度参数a)进行调整。此外,第一区间由第三时长和第四时长确定。
终端设备在预设任务列表处于堵塞状态时,先按照预设递减规则在第一区间内调整第一权重控制参数。
具体地,例如,对等待时长的第一权重控制参数进行调整的方法可以是:按照预设递减规则,在第一区间内对等待时长的第一权重控制参数进行递减调整,其中,第一区间由第三时长(即
Figure BDA0003135689110000141
)和第四时长(即
Figure BDA0003135689110000142
)确定,第一区间可以为
Figure BDA0003135689110000143
预设递减规则可以是均匀地递减,也可以是不均匀地递减,此处不做限制;相反,当预设任务列表未处于堵塞状态时,触发生成的参数调整指令也是对等待时长的第一权重控制参数(即上述实施例中的初始调度参数a)进行的调整,但对等待时长的第一权重控制参数进行调整的方法是:按照预设递增规则,在区间
Figure BDA0003135689110000144
内对等待时长的第一权重控制参数进行递增调整,预设递增规则可以是均匀地递增,也可以是不均匀地递增,此处不做限制。
进一步地,在一种可行的实施例中,初始调度参数还包括所述执行时长的第二权重控制参数,上述步骤S42,根据所述参数调整指令对所述初始调度参数进行调整得到调整后的调度参数,还可以包括:
步骤S422,按照预设递减规则,在第二区间内调整所述第二权重控制参数,其中,所述第二区间由所述第一时长、第二时长和所述第四时长确定;
需要说明的是,在本实施例中,第二区间由第一时长、第二时长和第四时长确定。
终端设备在按照预设递减规则在第一区间内调整第一权重控制参数之后,进一步按照该预设递减规则在第二区间内调整第二权重控制参数。
具体地,例如,如图4所示,通过读取预设任务列表,还可以确定预设任务列表中所有待调度任务的等待时长的平均值大小,当预设任务列表中所有待调度任务的等待时长的平均值大小超过一个大的临界值时,触发生成参数调整指令,且该参数调整指令是针对执行时长的第三权重控制参数的调整,目的是调整执行时长对任务的权重值的影响程度。
具体地,对执行时长的第二权重控制参数进行调整的方法可以是:按照预设递减规则,在第二区间内对执行时长的第二权重控制参数进行递减调整,其中,第二区间由第一时长(即
Figure BDA0003135689110000151
)、第二时长(即
Figure BDA0003135689110000152
)和第四时长(即
Figure BDA0003135689110000153
)确定,第二区间可以为
Figure BDA0003135689110000154
预设递减规则可以是均匀地递减,也可以是不均匀地递减;
步骤S423,按照预设递增规则,在第三区间内调整所述第二权重控制参数,其中,所述第三区间由所述第一时长、第二时长和所述第四时长确定,且所述第三区间的极小值大于或者等于所述第二区间的极大值。
需要说明的是,在本实施例中,第三区间同样由第一时长、第二时长和第四时长确定,但是该第三区间的极小值大于或者等于上述第二区间的极大值。
终端设备在在预设任务列表中待调度任务的等待时长的平均值达到临界值时,进一步照预设递增规则在第三区间内调整第二权重控制参数。
具体地,例如,当预设任务列表中所有待调度任务的等待时长的平均值大小低于一个小的临界值时,触发生成的参数调整指令也是针对执行时长的第二权重控制参数的调整,目的还是调整执行时长对任务的权重值的影响程度,需要说明的是,对执行时长的第二权重控制参数进行调整的方法还可以是:按照预设递增规则,在第三区间内对执行时长的第二权重控制参数进行递增调整,其中,第三区间由第一时长(即
Figure BDA0003135689110000155
)、第二时长(即
Figure BDA0003135689110000156
)和第四时长(即
Figure BDA0003135689110000157
)确定,第三区间可以为
Figure BDA0003135689110000158
预设递增规则可以是均匀地递增,也可以是不均匀地递增,此处不做限制。
在本实施例中,在计算得到预设调度算法中的初始调度参数后,根据任务调度不同的运行场景,动态调整预设调度算法的调度参数使基于本发明提出的调整调度参数后的调度算法进行的任务调度更加符合业务需求,更加适应业务需求多变的现实场景。
进一步地,基于上述第一实施例和第二实施例,提出本发明任务调度方法的第三实施例,本实施例与上述第一实施例和第二实施例之间的主要区别在于,上述步骤S40,通过所述预设调度算法基于所述调整后的调度参数对所述预设任务列表中的任务进行调度,还可以包括:
步骤S43,将所述调整后的调度参数加入所述预设调度算法中以计算得到所述待调度任务对应的优先权重值;
终端设备在针对估算的初始调度参数进行调整得到调整后的调度参数之后,直接将该调整后的调度参数加入到预设调度算法当中以计算得出预设任务列表中待调度任务所对应进行调度的优先权重值。
需要说明的是,在本实施例中,对预设调度参数进行调整后,得到新的调度参数,终端设备可直接通过将该新的调度参数加入到上述预设调度算法f=a×Jwait+(b-c×Jrun)中,从而通过该更新后调度参数的利用该预设调度算法进行计算,即可输出得到待调度任务对应的优先权重值,即f值,f值大的待调度任务优先被调度器调度。
步骤S44,根据所述优先权重值从所述预设任务列表中提取所述待调度任务以完成调度。
终端设备在通过预设调度算法基于调整后的调度参数进行计算得到待调度任务的优先权重值之后,即按照该优先权重值的大小,按照该优先权重值从大致小的顺序从预设任务列表中提取对应待调度任务进行调度执行,依次调度直至全部待调度任务完成调度。
具体地,例如,如图5所示,图5为预设调度算法的执行过程,通过将待调度任务对应的执行时长和等待时长代入调整过调度参数的预设调度算法f=a×Jwait+(b-c×Jrun)中,计算得到待调度任务的优先权重值。然后,如图2,假定预设任务列表中有9个待调度任务,而通过上述调整过调度参数的预设调度算法f=a×Jwait+(b-c×Jrun),可以得到每个待调度任务的优先权重值,进而从中选出优先权重值最高的待调度任务,为其进行资源分配,其中,图5中的资源指的是对任务进行调度或者执行任务所需的资源,为优先权重值最高的待调度任务分配好资源后,判断预设任务列表是否为空,当预设任务列表不为空时,计算预设任务列表中剩下的待调度任务的优先权重值,然后从中选出优先权重值最高的待调度任务,如此循环,直至预设任务列表为空。
在本实施例中使用调整调度参数后的预设任务调度算法计算待调度任务的优先权重值,进而根据优先权重值对待调度任务进行调度,由于本发明提出的预设任务调度算法中的调度参数可以根据不同的业务场景进行调整,使基于本发明提出的调整调度参数后的调度算法进行的任务调度更加符合业务需求,更加适应业务需求多变的现实场景。
进一步地,本发明还提供一种任务调度装置,请参照图6,图为本发明任务调度装置一实施例的功能模块示意图,如图6所示,本发明任务调度装置包括:
待调度任务确定模块10,用于接收任务调度指令以确定所述任务调度指令对应的待调度任务;
时长确定模块20,用于确定所述待调度任务的执行时长和等待时长,并将所述待调度任务放入预设任务列表;
初始调度参数计算模块30,用于根据所述执行时长和所述等待时长计算预设调度算法中的初始调度参数;
参数调整模块40,用于对所述初始调度参数进行调整得到调整后的调度参数,并通过所述预设调度算法基于所述调整后的调度参数对所述预设任务列表中的任务进行调度。
进一步地,本发明任务调度装置,还包括:
获取模块,用于获取预存的历史任务时长和处理所述待调度任务的目标线程的状态信息;
进一步地,本发明时长确定模块20,还包括:
执行时长估算单元,用于根据所述历史任务时长估算所述待调度任务中各任务各自的执行时长;
等待时长估算单元,用于根据所述状态信息估算所述待调度任务中各任务各自的等待时长。
进一步地,本发明初始调度参数计算模块30,包括:
提取单元,用于提取所述执行时长中的第一最大值和第一最小值,并定义所述第一最大值为第一时长和定义所述第一最小值为第二时长;
定义单元,用于提取所述等待时长中的第二最大值和第二最小值,并定义所述第二最大值为第三时长和定义所述第二最小值为第四时长;
计算单元,用于根据所述第一时长、所述第二时长、所述第三时长和所述第四时长计算预设调度算法中的初始调度参数。
进一步地,本发明参数调整模块40,包括:
参数调整指令接收单元,用于接收参数调整指令,其中,所述参数调整指令基于所述预设任务列表的堵塞状态触发,或者,基于所述等待时长的平均值的大小触发;
调度参数调整单元,用于根据所述参数调整指令对所述初始调度参数进行调整得到调整后的调度参数。
进一步地,初始调度参数包括等待时间的第一权重控制参数,本发明调度参数调整单元,包括:
第一递减调整单元,用于按照预设递减规则,在第一区间内调整所述第一权重控制参数,其中,所述第一区间由所述第三时长和所述第四时长确定。
进一步地,初始调度参数还包括执行时长的第二权重控制参数和第三权重控制参数,本发明调度参数调整单元,还包括:
第二递减调整单元,用于按照预设递减规则,在第二区间内调整所述第二权重控制参数,其中,所述第二区间由所述第一时长、第二时长和所述第四时长确定;
递增调整单元,用于按照预设递增规则,在第三区间内调整所述第二权重控制参数,其中,所述第三区间由所述第一时长、第二时长和所述第四时长确定,且所述第三区间的极小值大于或者等于所述第二区间的极大值。
进一步地,本发明参数调整模块40,还包括:
优先权重值计算单元,用于将所述调整后的调度参数加入所述预设调度算法中以计算得到所述待调度任务对应的优先权重值;
待调度任务提取单元,用于根据所述优先权重值从所述预设任务列表中提取所述待调度任务以完成调度。
其中,上述任务调度装置中各个模块的功能实现与上述任务调度方法实施例中各步骤相对应,其功能和实现过程在此处不再一一赘述。
本发明还提供一种计算机存储介质,该计算机存储介质上存储有任务调度程序,所述任务调度程序被处理器执行时实现如以上任一项实施例所述的任务调度方法的步骤。
本发明计算机存储介质的具体实施例与上述任务调度方法各实施例基本相同,在此不作赘述。
本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现如以上任一项实施例所述的任务调度方法的步骤。
本发明计算机存储介质的具体实施例与上述任务调度方法各实施例基本相同,在此不作赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (10)

1.一种任务调度方法,其特征在于,所述任务调度方法包括:
接收任务调度指令以确定所述任务调度指令对应的待调度任务;
确定所述待调度任务的执行时长和等待时长,并将所述待调度任务放入预设任务列表;
根据所述执行时长和所述等待时长计算预设调度算法中的初始调度参数;
对所述初始调度参数进行调整得到调整后的调度参数,并通过所述预设调度算法基于所述调整后的调度参数对所述预设任务列表中的任务进行调度。
2.如权利要求1所述的任务调度方法,其特征在于,在所述接收任务调度指令以确定所述任务调度指令对应的待调度任务的步骤之后,还包括:
获取预存的历史任务时长和处理所述待调度任务的目标线程的状态信息;
所述待调度任务的数量大于一,所述确定所述待调度任务的执行时长和等待时长的步骤,包括:
根据所述历史任务时长估算所述待调度任务中各任务各自的执行时长;
根据所述状态信息估算所述待调度任务中各任务各自的等待时长。
3.如权利要求1所述的任务调度方法,其特征在于,所述根据所述执行时长和所述等待时长计算预设调度算法中的初始调度参数的步骤,包括:
提取所述执行时长中的第一最大值和第一最小值,并定义所述第一最大值为第一时长和定义所述第一最小值为第二时长;
提取所述等待时长中的第二最大值和第二最小值,并定义所述第二最大值为第三时长和定义所述第二最小值为第四时长;
根据所述第一时长、所述第二时长、所述第三时长和所述第四时长计算预设调度算法中的初始调度参数。
4.如权利要求3所述的任务调度方法,其特征在于,所述对所述初始调度参数进行调整得到调整后的调度参数的步骤,包括:
接收参数调整指令,其中,所述参数调整指令基于所述预设任务列表的堵塞状态触发,或者,基于所述等待时长的平均值的大小触发;
根据所述参数调整指令对所述初始调度参数进行调整得到调整后的调度参数。
5.如权利要求4所述的任务调度方法,其特征在于,所述初始调度参数包括:所述等待时长的第一权重控制参数,所述根据所述参数调整指令对所述初始调度参数进行调整得到调整后的调度参数的步骤,包括:
按照预设递减规则,在第一区间内调整所述第一权重控制参数,其中,所述第一区间由所述第三时长和所述第四时长确定。
6.如权利要求4所述的任务调度方法,其特征在于,所述初始调度参数还包括:所述执行时长的第二权重控制参数,所述根据所述参数调整指令对所述初始调度参数进行调整得到调整后的调度参数的步骤,还包括:
按照预设递减规则,在第二区间内调整所述第二权重控制参数,其中,所述第二区间由所述第一时长、第二时长和所述第四时长确定;或者,
按照预设递增规则,在第三区间内调整所述第二权重控制参数,其中,所述第三区间由所述第一时长、第二时长和所述第四时长确定,且所述第三区间的极小值大于或者等于所述第二区间的极大值。
7.如权利要求1至6任一项所述的任务调度方法,其特征在于,所述通过所述预设调度算法基于所述调整后的调度参数对所述预设任务列表中的任务进行调度的步骤,包括:
将所述调整后的调度参数加入所述预设调度算法中以计算得到所述待调度任务对应的优先权重值;
根据所述优先权重值从所述预设任务列表中提取所述待调度任务以完成调度。
8.一种任务调度装置,其特征在于,所述任务调度装置包括:
待调度任务确定模块,用于接收任务调度指令以确定所述任务调度指令对应的待调度任务;
时长确定模块,用于确定所述待调度任务的执行时长和等待时长,并将所述待调度任务放入预设任务列表;
初始调度参数计算模块,用于根据所述执行时长和所述等待时长计算预设调度算法中的初始调度参数;
参数调整模块,用于对所述初始调度参数进行调整得到调整后的调度参数,并通过所述预设调度算法基于所述调整后的调度参数对所述预设任务列表中的任务进行调度。
9.一种终端设备,其特征在于,所述终端设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的任务调度程序,所述任务调度程序被所述处理器执行时实现如权利要求1至7中任一项所述的任务调度方法的步骤。
10.一种计算机存储介质,其特征在于,所述计算机存储介质上存储有任务调度程序,所述任务调度程序被处理器执行时实现如权利要求1至7中任一项所述的任务调度方法的步骤。
CN202110718200.0A 2021-06-28 2021-06-28 任务调度方法、装置、终端设备及计算机存储介质 Pending CN113342497A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110718200.0A CN113342497A (zh) 2021-06-28 2021-06-28 任务调度方法、装置、终端设备及计算机存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110718200.0A CN113342497A (zh) 2021-06-28 2021-06-28 任务调度方法、装置、终端设备及计算机存储介质

Publications (1)

Publication Number Publication Date
CN113342497A true CN113342497A (zh) 2021-09-03

Family

ID=77479014

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110718200.0A Pending CN113342497A (zh) 2021-06-28 2021-06-28 任务调度方法、装置、终端设备及计算机存储介质

Country Status (1)

Country Link
CN (1) CN113342497A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114443278A (zh) * 2021-12-24 2022-05-06 苏州浪潮智能科技有限公司 一种ai平台训练任务调度的方法、装置、设备及介质
CN114661450A (zh) * 2022-05-26 2022-06-24 南京云信达科技有限公司 基于时间序列学习和预测的备份系统任务调度方法及系统

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114443278A (zh) * 2021-12-24 2022-05-06 苏州浪潮智能科技有限公司 一种ai平台训练任务调度的方法、装置、设备及介质
CN114443278B (zh) * 2021-12-24 2024-01-09 苏州浪潮智能科技有限公司 一种ai平台训练任务调度的方法、装置、设备及介质
CN114661450A (zh) * 2022-05-26 2022-06-24 南京云信达科技有限公司 基于时间序列学习和预测的备份系统任务调度方法及系统

Similar Documents

Publication Publication Date Title
US11582166B2 (en) Systems and methods for provision of a guaranteed batch
CN106557369B (zh) 一种多线程的管理方法及系统
US20170109200A1 (en) Method for scheduling user request in distributed resource system, and apparatus
CN113342497A (zh) 任务调度方法、装置、终端设备及计算机存储介质
US8547840B1 (en) Bandwidth allocation of bursty signals
CN109669773B (zh) 金融数据处理方法、装置、设备和存储介质
CN111506406B (zh) 工作流调度方法、装置、系统与计算机可读存储介质
US20170185456A1 (en) Dynamically scaled web service deployments
CN112486642B (zh) 资源调度方法、装置、电子设备及计算机可读存储介质
CN112860390A (zh) 作业调度程序、信息处理设备和作业调度方法
CN109614236B (zh) 集群资源动态调整方法、装置、设备及可读存储介质
US9886320B2 (en) Method for prioritizing tasks queued at a server system
CN109670932B (zh) 信贷数据核算方法、装置、系统和计算机存储介质
CN111913799B (zh) 一种视频流在线分析任务调度方法和计算机设备
EP2477112A1 (en) Method for efficient scheduling in a resource-sharing system
Racu et al. Improved response time analysis of tasks scheduled under preemptive round-robin
CN112948104A (zh) 负载均衡的数据采集方法及装置
CN107589985B (zh) 一种面向大数据平台的两阶段作业调度方法及系统
CN114661415A (zh) 调度方法及计算机系统
CN111176815B (zh) 一种操作系统的任务调度方法及装置
CN111858019B (zh) 任务调度方法、装置及计算机可读存储介质
CN114443241A (zh) 一种任务动态调度方法、任务下发方法及其装置
CN108268310B (zh) 一种确定最小调度粒度的方法及装置
CN116848508A (zh) 基于强化学习模型调度任务以供计算机执行
CN116521234B (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